class Baby(): # def __init__(self,name):#构造函数不是必须得 # print('self的内存地址',id(self)) # self.name=name # #self代表的就是实例化之后的对象 # self.money=5000 # self.sex='女' country='China'#类变量,公共的变量,每个实例都可以用 def my(self): self.name='nhy' def cry(self):#实例方法 print('哇哇哇哇') @property#看起来像属性的一个方法(没有入参可以用,结果就是返回值)
def h(self): return 198 @classmethod#(不想实例化的时候,就可以用类方法)1、不用实例化就可以直接调用。2、它可以通过cls使用类变量3、它不能调用这个类里面的其他实例方法和实例变量
def xm(cls):#cls代表的就是baby这个类 print(cls.country) print('我是类方法') # print(cls.name) # cls.cry() @staticmethod#就是一个普通的函数,只不过写在类里面而已,它用不了类变量,类方法,实例变量,实例方法
def xh(): print('静态方法,它和一个没写在类里面的函数一样') Baby.xh() Baby.xm() x=Baby() x.xm() # Baby.country='USA'#类变量可以直接用过类名,XXX来进行修改的 # dcg=Baby() # print(dcg.country) # dcg.country='Japan' # yjt=Baby() # print(yjt.country) # b=Baby() # print(b.h) # zll=Baby() # zll.my() # print(zll.name) # ka=Baby('可爱') # print('可爱的内存地址',id(ka)) # print(ka.money) # print(ka.sex) # ka.car='bmw x3' # print(ka.car) # xb=Baby('小白') # print(id(xb))