当前位置:首页 > 后端开发 > 灿灿灿的第十四次python记录——python 3.x属性以及常用的特殊方法

灿灿灿的第十四次python记录——python 3.x属性以及常用的特殊方法

6个月前 (05-22)49

一、Python 3.x中的属性

1.可读、可写属性

例子:

>>> class Test:
	    def __init__(self, value):
		self.__value = value	

	    def __get(self):
		return self.__value

	    def __set(self, v):
		self.__value = v

	    value = property(__get, __set)

	    def show(self):
		print(self.__value)
		>>> t = Test(3)
>>> t.value      #允许读取属性值
3
>>> t.value = 5  #允许修改属性值
>>> t.value
5
>>> t.show()     #属性对应的私有变量也得到了相应的修改
5
>>> del t.value  #试图删除属性,失败
AttributeError: can't delete attribute

2.可读、可修改、可删除的属性。

>>> class Test:
	    def __init__(self, value):
		self.__value = value

	    def __get(self):
		return self.__value

	    def __set(self, v):
		self.__value = v

	    def __del(self):
		del self.__value

	    value = property(__get, __set, __del)

	    def show(self):
		print(self.__value)
>>> t = Test(3)
>>> t.show()
3
>>> t.value
3
>>> t.value = 5
>>> t.show()
5
>>> t.value
5
>>> del t.value            #删除属性
>>> t.value                #对应的私有数据成员已删除
AttributeError: 'Test' object has no attribute '_Test__value'
>>> t.show()
AttributeError: 'Test' object has no attribute '_Test__value'
>>> t.value =1             #为对象动态增加属性和对应的私有数据成员
>>> t.show()
1
>>> t.value
1

二、常用特殊方法

2.1构造函数

Python中类的构造函数是__init__(),一般用来为数据成员设置初值或进行其他必要的初始化工作,在创建对象时被自动调用和执行。如果用户没有设计构造函数,Python将提供一个默认的构造函数用来进行必要的初始化工作。

2.2 析构函数

Python中类的析构函数是__del__(),一般用来释放对象占用的资源,在Python删除对象和收回对象空间时被自动调用和执行。如果用户没有编写析构函数,Python将提供一个默认的析构函数进行必要的清理工作。

2.3 重载

1.除此之外,Python还支持大量的特殊方法,运算符重载就是通过重写特殊方法实现的。
2。重载的概念:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数 类型不同即可。
3。Python不支持重载。

三、例题

1.自定义集合。模拟Python内置集合类型,实现元素添加、删除以及并集、交集、对称差集等基本运算。

>>> from mySet import Set        #导入自定义集合类
>>> x = Set(range(10))           #创建集合对象
>>> y = Set(range(8, 15))
>>> z = Set([1, 2, 3, 4, 5])
>>> x
{
     0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> y
{
     8, 9, 10, 11, 12, 13, 14}

增加,删除元素

>>> z.add(6)                     #增加元素
>>> z
{
     1, 2, 3, 4, 5, 6}
>>> z.remove(3)                  #删除指定元素
删除成功
>>> z
{
     1, 2, 4, 5, 6}
>>> y.pop()                      #随机删除一个元素
11

差集

>>> x - y                        #差集
{
     0, 1, 2, 3, 4, 5, 6, 7}
>>> x - z
{
     0, 3, 7, 8, 9}
>>> x.difference(y)
{
     0, 1, 2, 3, 4, 5, 6, 7}

并集

>>> x | y                        #并集
{
     0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14}
>>> x.union(y)
{
     0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14}

交集,对称差集

>>> x & z                        #交集
{
     1, 2, 4, 5, 6}
>>> x ^ z                     #对称差集
{
     0, 3, 7, 8, 9}
>>> x.symetric_difference(y)
{
     0, 1, 2, 3, 4, 5, 6, 7, 10, 12, 13, 14}
>>> (x - y) | (y - x)
{
     0, 1, 2, 3, 4, 5, 6, 7, 10, 12, 13, 14}

测试

>>> x == y                    #测试两个集合是否相等
False
>>> x > y                     #测试集合包含关系
False
>>> y > x
False
>>> x > z
True
>>> x >= z
True
>>> z.issubset(x)                    #测试z是否为x的子集
True
>>> x.issuperset(z)                  #测试x是否为z的超集
True
>>> 3 in x                           #测试集合中是否存在某个元素
True
>>> 33 in x
False
>>> len(y)                           #计算集合中元素个数
6
>>> y.clear()
集合已清空
>>> y.pop()
集合已空,弹出操作被忽略

四、总结

本次记录内容有点难,需要多做例题来巩固灿灿灿的第十四次python记录——python 3.x属性以及常用的特殊方法 _ Java侠

作者:@灿灿灿
来源链接:https://blog.csdn.net/qq_51872144/article/details/118123209

标签: Python

“灿灿灿的第十四次python记录——python 3.x属性以及常用的特殊方法” 的相关文章

安装ipython时python setup.py egg

在Mac OS X中安装IPython: python -V Python 2.7.6 pip -V pip 8.1.1 from /Libr...

Sublime Text3的安装以及python开发环境的搭建

Sublime Text3的安装以及python开发环境的搭建

作者:struct_mooc 博客地址:https://www.cnblogs.com/structmooc/p/12376601.html 目录...

Python生产环境部署(fastcgi,uwsgi)

Python生产环境部署(fastcgi,uwsgi)

Python部署web开发程序的几种方法 fastcgi ,通过flup模块来支持,在nginx里对应的配置指令是 fastcgi_pass ht...

Python 3.x 与Python 2.x 的不同点汇总笔记

          Python3.x 相对于Python2.x 有了些许改动,这样在用最新版Python...

python2 输出不换行

python2 输出不换行

怎样使 Python 输出时不换行 关注:109  答案:4  mip版 解决时间 2021-01-16 2...

Python开发环境安装教程

Python开发环境安装教程

本文主要内容: 1. 下载与安装Python...

Python3.x和Python2.x的一般区别

Python3.x和Python2.x的区别 这个星期开始学习Python了,因为看的书都是基于Python2.x,而且我安装的是Py...

python环境搭建  -  python-3.6.5-amd64 版本安装说明

python环境搭建 - python-3.6.5-amd64 版本安装说明

python环境搭建 - python-3.6.5-amd64 版本安装说明 python-3.5.6 - Windows64 下载...

【转】Python3使用Django2.x的settings文件详解

  # -*- coding:utf8 -*- import os # 项目路径 BASE_DIR = os.path.dirname(os.path.dir...

Python3.x对Python2.x的语法变动

一: print从语句变成函数 原 print 1,2+3 改成 print(1,2+3)>>>1 5 二:range与xrange 原rang(0,...