脚本宝典收集整理的这篇文章主要介绍了Python是动态语言:动态添加或删除属性、方法,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。@H_512_0@
上一篇文章:Python元类
上一篇文章:Python装饰器:python真正入门的鉴定标准
实例:
class PErson():
def __inIT__(self,name):
self.name=name
#定义一个对象
mark=Person("mark")#终于修炼成人了,好开森
PRint("报出我的大名",mark.name)
#直接新定义属性:age
mark.age=18
print("我的实际年龄:",mark.age)#哎????,写大了,我还是个宝宝????
#动态删除属性:
del mark.age
#这种方法删除也可以
#delattr(Person,"age")
#下面一句会报错
#print("我的实际年龄:",mark.age)#哎????,写大了,我还是个宝宝????
结果:
报出我的大名 mark
我的实际年龄: 18
import types
class Person():
def __init__(self,name):
self.name=name
def study(self):
print("学习使我快乐")
#定义一个方法
def run(self,speed):
print("我竟然会跑????,速度:",speed)
#定义一个类方法
@classmethod
def classmethod_fun(cls):
print("我是类方法")
#定义一个静态方法
@staticmethod
def static_fun():
print("我是静态方法")
#定义一个对象
mark=Person("mark")
mark.study()
#动态生命函数
mark.run=types.MethodType(run,mark)
#跑起来????
mark.run(100)
#绑定类方法
Person.classmethod_fun=classmethod_fun
#调用类方法
Person.classmethod_fun()
mark.classmethod_fun()
#绑定静态方法
Person.static_fun=static_fun
#调用静态放
Person.static_fun()
#删除方法
del Person.classmethod_fun
#下面一句会异常
#mark.classmethod_fun()
#这种方法删除也可以
delattr(Person,"static_fun")
#下面一句会异常
#Person.static_fun()
运行结果:
学习使我快乐
我竟然会跑????,速度: 100
我是类方法
我是类方法
我是静态方法
仅仅对当前类有效,对继承类无效
实例:
class Person():
__slots__ = ("name","age")
mark=Person()
mark.name="mark"
mark.age=18
#下面一句会报错
mark.object="在哪"
结果:
Traceback (most recent call last):
File "/Users/zhaolixiang/Desktop/python/test1/python是动态语言/3、slots.py", line 8, in <module>
mark.object="在哪"
AttributeError: 'Person' object has no attribute 'object'
以上是脚本宝典为你收集整理的Python是动态语言:动态添加或删除属性、方法全部内容,希望文章能够帮你解决Python是动态语言:动态添加或删除属性、方法所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。