1. 程式人生 > >類方法@classmethod、屬性方法@property、靜態方法 @staticmethod

類方法@classmethod、屬性方法@property、靜態方法 @staticmethod

baby turn 普通 用不了 stat 類變量 self. mon 小白

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

類方法@classmethod、屬性方法@property、靜態方法 @staticmethod