1 '''
2 類成員的組成:
3 字段:
4 1、普通字段
5 2、靜態字段
6 方法:
7 1、普通方法
8 '''
9 '''
10 字段:普通字段,靜態字段
11 '''
12 #/usr/bin/python
13 class wu(object):
14 #靜態字段
15 name = 'sanjiang'
16
17 def __init__(self,name,age):
18 #普通字段
19 self.name = name
20 self.age = age
21 #直接訪問普通字段
22 obj = wu('sanjiang',18)
23 print(obj.name,obj.age)
24 #直接訪問靜態字段
25 print(wu.name)
26
27 '''
28 類方法:普通方法。靜態方法,類方法
29 普通方法:由對象調用;至少一個self參數;執行普通方法時,自動將調用該方法的對象賦值給self;
30 類方法:由類調用; 至少一個cls參數;執行類方法時,自動將調用該方法的類復制給cls;
31 靜態方法:由類調用;無默認參數;
32 '''
33 class method(object):
34
35 def __init__(self,name):
36 self.name = name
37
38 def ordinary(self):
39 #定義普通方法
40 print('這是一個類的普通方法')
41
42 @classmethod
43 def class_method(cls):
44 #定義類方法,至少傳一個cls參數
45 print('這是一個類方法')
46 @staticmethod
47 def static_method():
48 #定義靜態方法 ,無默認參數
49 print('這是一個靜態方法')
50 #調用普通方法
51 function_method = method('sanjiang')
52 function_method.ordinary()
53 #調用類方法
54 method.class_method()
55 #調用靜態方法
56 method.static_method()
57
58 '''
59 屬性的基本使用
60 '''
61
62 class attribute(object):
63 def function(self):
64 pass
65
66 #定義屬性
67
68 @property
69 def func_property(self):
70 print('屬性')
71 attr_obj = attribute()
72 # attr_obj.function()
73 attr_obj.func_property
74
75
76 #私有成員
77
78 class private(object):
79 def __init__(self):
80 self.__foo = '私有字段'
81 def func(self):
82 print(self.__foo) #類內部訪問
83
84 class d(private):
85 def show(self):
86 print(self.__foo)
87 obj = private()
88 obj.func()
89 # obj1 = d()
90 # obj1.show() 會報錯 只能類內部訪問
91 #非要訪問私有屬性的話如下:
92 print(obj._private__foo)