类方法@classmethod、属性方法@property、静态方法 @staticmethod

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))

猜你喜欢

转载自www.cnblogs.com/irisx/p/9063410.html