python中向类中动态添加新特性及删除属性方法
2017-08-06 22:51
666 查看
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
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
相关文章推荐
- python语言是动态语言、给类添加属性、方法、静态方法和类方法、__slots__()、python中的生成器、yield的用法
- javascript动态添加、修改、删除对象的属性和方法
- javascript动态添加、修改、删除对象的属性和方法
- javascript动态添加、修改、删除对象的属性与方法详解
- 利用jQuery来动态为属性添加或者删除属性的简单方法
- javascript动态添加、修改、删除对象的属性与方法
- 我的Python学习笔记(四):动态添加属性和方法
- python动态添加属性和方法
- javascript动态添加、修改、删除对象的属性和方法
- javascript动态添加、修改、删除对象的属性和方法
- javascript动态添加、修改、删除对象的属性和方法
- js学习(一)-动态添加、修改、删除对象的属性和方法
- python语言是动态语言、给类添加属性、方法、静态方法和类方法、__slots__()、python中的生成器、yield的用法
- Python 动态添加属性及方法
- JavaScript可以动态添加、删除对象属性与方法
- js+jquery动态设置/添加/删除/获取元素属性的两种方法集锦对照(动态onclick属性设置+动态title设置)
- javascript动态添加、修改、删除对象的属性和方法
- Python动态语言-动态添加属性和方法
- JavaScript---动态添加删除属性与方法和对象构造方法
- 转: javascript动态添加、修改、删除对象的属性和方法