博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python_类和实例属性的增删改查操作
阅读量:6155 次
发布时间:2019-06-21

本文共 3296 字,大约阅读时间需要 10 分钟。

类的属性都是存放在字典中,所以对类或实例的属性进行操作实际上就是对字典的操作。

类的属性相关操作
如下图:
Python_类和实例属性的增删改查操作
Python_类和实例属性的增删改查操作
Python_类和实例属性的增删改查操作
代码块如下:

class Door():    "门的类"    address = "浙江省杭州市"    def __init__(self,size,color,type):#构造函数        "初始化门的数据"        self.size = size        self.color = color        self.type = type    def open(self):        "门打开的方法"        print("这个%s门打开了" %self.type)    def off(self,time):        "门关闭的方法"        print("这个%s门关闭了,时间为;%s" %(self.type,time))#####查看类的属性#####print(Door.__dict__)print(Door.address)#####增加类的属性######增加一个生产日期(time)数据属性Door.time = "2018-04-25 23:55:00"print(Door.__dict__)print(Door.time)#增加一个函数属性def fun(seif,name):    "谁在前门"    print("%s在boomboom敲门了"%name)Door.add = fun  #函数内存地址的映射#查看print(Door.__dict__)#调用类的属性#实例化door1 = Door(16, 'red', '木门')#实例中调用新增的数据属性print(door1.time)#实例中调用新增的函数属性print(door1.add('zhouzhou'))#####删除类的属性######删除类的生产日期(time)数据属性del Door.timeprint(Door.__dict__)#删除类的add函数属性del Door.addprint(Door.__dict__)# 实例化door2 = Door(16, 'red', '木门')#实例中调用新增的函数属性# print(door2.time)           #报错,没有该数据属性#实例中调用新增的add函数属性# print(door2.add)           #报错,没有该函数属性#####修改类的属性######修改类的数据属性Door.address = "湖北省武汉市"print(Door.__dict__)print(Door.address)#修改类的函数属性def modify():    print("这是更改后的函数")#更改类的open属性Door.open = modify      #函数内存地址的更改,导致执行的函数也对应进行了更改print(Door.__dict__)#调用类更改后的函数属性Door.open()#实例化door3 = Door(16, 'red', '木门')#实例中调用类修改的数据属性print(door3.address)#实例中调用类修改的函数属性print(door3.open)door3.open()    #报错,因为实例化的对象在调用类的函数时,均会带上参数self但此处并不需要实参

2.实例的属性相关操作

如下图:
Python_类和实例属性的增删改查操作
Python_类和实例属性的增删改查操作
代码块如下:

class Door():    "门的类"    address = "浙江省杭州市"    def __init__(self,size,color,type):#构造函数        "初始化门的数据"        self.size = size        self.color = color        self.type = type    def open(self):        "门打开的方法"        print("这个%s门打开了" %self.type)    def off(self,time):        "门关闭的方法"        print("这个%s门关闭了,时间为;%s" %(self.type,time))#实例door1 = Door(16, 'red', '木门')#####查看实例的属性#####print(door1.__dict__)print(door1.size)#####增加实例的属性######增加实例的宽度属性door1.width = 180#实例查看新增的属性print(door1.__dict__)print(door1.width)#类中查看是否含有该属性print(Door.__dict__)# print(Door.width)       #报错,类中没有改属性--即:实例一定可以访问类的属性,类不一定能访问实例的属性#其他实例访问door2 = Door(23, 'white', '铝合金')# print(door2.width)      #报错,width属性只是在实例door1中存在,不在类中存在,更不会在实例door2中存在#增加一个函数属性def test():    print("这是一个测试方法")door1.add = testdoor1.add()#####删除实例的属性######删除实例中的宽度属性del door1.widthprint(door1.__dict__)# print(door1.width)      #报错,已经没有宽度属性了#删除实例中的‘函数’属性del door1.adddoor1.add()         #报错,已删除,不存在该属性了#####修改实例的属性######修改数据属性door1.size =100print(door1.size)#修改函数属性def boom():    print("boom boom!!有人在敲门")door1.open = boom   #更改了方法对应的内存地址,也就更改了函数的内容print(Door.__dict__)door1.open()

有意思的事

见下图:
Python_类和实例属性的增删改查操作
该部分代码块如下:

class Door():    "门的类"    address = "浙江省杭州市"    def __init__(self,size,color,type):#构造函数        "初始化门的数据"        self.size = size        self.color = color        self.type = type    def open(self):        "门打开的方法"        print("这个%s门打开了" %self.type)    def off(self,time):        "门关闭的方法"        print("这个%s门关闭了,时间为;%s" %(self.type,time))door1 = Door(16, 'red', '木门')print("实例数据属性中没有address,向类属性中找address属性,address=",door1.address)print("直接调用类中的address属性,address=",Door.address)#在实例中增加了一个address属性door1.address = "湖北省武汉市"print("因为现在实例中有了address,所以可以直接调用,address=",door1.address)print("此处仍然是调用Door类中数据属性,和实例无关,address=",Door.address)

转载于:https://blog.51cto.com/10836356/2108787

你可能感兴趣的文章
jquery用法大全
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
深入浅出NodeJS——数据通信,NET模块运行机制
查看>>
onInterceptTouchEvent和onTouchEvent调用时序
查看>>
android防止内存溢出浅析
查看>>
4.3.3版本之引擎bug
查看>>
SQL Server表分区详解
查看>>
使用FMDB最新v2.3版本教程
查看>>
STM32启动过程--启动文件--分析
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>
淘宝的几个架构图
查看>>
linux后台运行程序
查看>>