python类方法的动态属性

class A(object):
    def f(self):   #这里的f函数定义与否没有关系
        pass
        
def f1(self):
    print "f1"
    
def f2():
    print "f2"
    
在类A中动态添加方法,一定要有self参数,如f1一样
A.f1=f1     #或者更新f ...  A.f=f1

在对象中动态添加方法,一定不要有self参数,如f2一样

a=A()
a.f2=f2     #或者更新f方法 ...  a.f=f2


  

"""
__slots__的使用:Python定义class的时候,定义一个特殊的__slots__变量,来限制该class能添加的属性
"""

class A(object):
    __slots__=("name","age") 
#用tuple定义允许绑定的属性名称,只允许对A实例添加name和age属性,添加使用其他属性就报错


你可能感兴趣的:(python类方法的动态属性)