class Student(): def __init__(self,A,B): self.A=A self.B=B pass def __str__(self): return'{}今天{}岁了'.format(self.A,self.B) pass zyh=Student('张燕华',25) zyh.weight=80 #动态添加 print(zyh) print(zyh.weight) zm=Student Student.pro='北京邮电' #动态添加类属性 print(zm.pro) @classmethod #类方法 动态添加 def classtest(cls): print('这是一个类方法') pass Student.TestMethod=classtest Student.TestMethod() zyh.TestMethod()
输出结果:张燕华今天25岁了
80
北京邮电
这是一个类方法
这是一个类方法
作业:1、python中的new方法是用来创建实例对象的,只有继承了object的话,才能有这个方法
2、什么是单例模式?
要求一个类只有一个实例对象,并且提供一个全局的访问点
3、在类外面是否能够修改私有属性?
不可以直接修改,可通过方法去实现,还可以借助属性函数property去实现
class person: def __init__(self,n,a): self.__name=n self.__age=a pass def __str__(self): return '{}的年龄是{}多少岁了'.format(self__name,self.__age) def getageinfo(self): return self.__age def getageinfo(self): return self.__name def setage(self,age): if age>0 and age<120: self.__age=age pass else: print('您输入的数据不合法') def setname(self,name): self.__name=name
import types class animal: pass def run(self): print('小猫飞快的跑') @classmethod #类方法 def info(cls): print('OK') animal.colour='黑色' #绑定类属性 cat=animal cat.run=types.MethodType(run,cat) #动态绑定 cat.run() print(cat.colour) animal.info=info animal.info()