1 class days(object):
2 def __init__(self, food):
3 self.food = food
4
5 @staticmethod # 實際和類沒有關係
6 def tell(self):
7 print('這裏有%s,%s快來' % (self.food, 'name'))
8
9
10 a = days('香蕉')
11 a.tell(a)
1 lass f2(object):
2 name = '大哥大大' # 類變量
3
4 def __init__(self, name):
5 self.name = name
6
7 @classmethod
8 def eat(self):
9 print('這裏有%s,【%s】' % (self.name, '類的方法'))
10
11
12 f2.eat()
由屬性的定義和調用要注意一下幾點: 1 定義時,在普通方法的基礎上添加 @property 裝飾器; 2 定義時,屬性僅有一個self參數 3 調用時,無需括號 屬性的定義有兩種方式: 1 裝飾器 即:在方法上應用裝飾器 2 靜態字段 即:在類中定義值爲property對象的靜態字段
經典類,具備一種@property裝飾器:
1 class f3(object):
2 def __init__(self, name):
3 self.name = name
4 self.__food = None
5
6 @property
7 def eat2(self):
8 print('這裏%s,【%s】' % (self.name, '在幹什麼'))
9
10
11 c = f3('阿豬')
12 c.eat2
新式類,具備三種@property裝飾器,分別對應了三個被@property、@方法名.setter、@方法名.deleter修飾的方法。
1 class f4(object):
2 def __init__(self, name):
3 self.name = name
4 self.__food = None
5
6 @property # 把一個普通方法變爲屬性方法,獲取
7 def eat(self):
8 print('這裏%s,【%s】' % (self.name, self.__food)) # 因爲沒有參數self.__food在這沒有調用
9
10 @eat.setter # 修改
11 def eat(self, food):
12 print('我要吃%s' % food)
13 self.__food = food
14
15 @eat.getter # 刪除
16 def eat(self):
17 del self.__food
18 print('刪除字段self.__food')
19
20
21 d = f4('阿豪')
22 d.eat
23 d.eat = '餃子'
24 del d.eat
25 d.eat