class Foo(object):
pass
obj = Foo()
# 添加对象属性(对象名追加对象属性)
obj.a = 100
# print(obj.a)
# 添加类属性(类名称追加类属性)
Foo.b = 200
# print(Foo.b)
# print(obj.b)
# 添加对象方法
def obj_fun(self):
print(self.a)
# 第一方法,通过类名追加对象方法, 所有这个类的对象都能调用这个对象方法
Foo.o_fun= obj_fun(类名追加对象方法
# obj.o_fun()
# 第二方法,通过对象名追加对象方法,只有这个对象能够使用
#obj.o2_fun = obj_fun(对象名追加对象方法
#
#obj.o2_fun(obj)(注意参数问题
import types
# 使用MethodType函数将obj与obj_fun的参数self绑定
binded_fun =types.MethodType(obj_fun, obj)
obj.o2_fun =binded_fun
# obj.o2_fun()
# 添加类方法 (类名追加对象属性
@classmethod
def class_fun(cls):
print(cls.b)
Foo.c_fun =class_fun
# Foo.c_fun()
# 添加静态方法 (类名追加对象属性
@staticmethod
def static_fun():
print("static_fun called")
Foo.s_fun =static_fun
# Foo.s_fun()
# 删除属性方法
# 对象属性(对象名追加对象属性
# del obj.a
delattr(obj,"a")
# print(obj.a)
# 类属性(类名追加对象属性
del Foo.b
# print(Foo.b)
# 对象方法(类名追加对象方法
del Foo.o_fun
# obj.o_fun()
# 类方法
del Foo.c_fun
# 静态方法
del Foo.s_fun
---------------------
作者:幸福清风
来源:CSDN
原文:https://blog.csdn.net/xun527/article/details/76795371
版权声明:本文为博主原创文章,转载请附上博文链接!