python 面向對象(二)
阿新 • • 發佈:2018-08-29
init ade style obj urn 面向 def spa 封裝
1. 成員
成員共分為三類:
1變量:
- 實例變量(字段)
- 公有實例變量(字段)
- 私有實例變量(字段)
- 類變量(靜態字段)
- 公有類變量(靜態字段)
- 私有類變量(靜態字段)
class Student: school = "藍翔" #公有的類變量 __grade = "一年級" #私有的類變量 def __init__(self,name): self.name = name #公有的實例變量 self.__age= 18 #私有的實例變量 stu = Student("Tom") print(stu.name) # print(stu.__age) #私有的實例變量不能在類外部訪問 print(Student.school) # print(Student.__grade) #私有的類變量不能在類外部訪問
2.方法
實例方法
有個self參數
靜態方法 : 如果方法無需使用對象中封裝的值,那麽就可以使用靜態方法
方法上邊有@staticmethod
參數可有可無
類方法 : 如果在方法中會使用到當前類,那麽就用類方法
方法上邊有@classmethod
有個cls參數
class Student: def __init__(self,name,age): self.name = name self.age = age def dyname(self): #實例方法 print(self.name) @staticmethod def dy(x): #靜態方法:如果方法無需使用對象中封裝的值,那麽就可以使用靜態方法 print("哈哈哈",x) @classmethoddef dy2(cls): #類方法:如果在方法中會使用到當前類,那麽就用類方法 print(cls) stu = Student("Tom",18) stu.dyname() Student.dy("s15") Student.dy2()
3.屬性
方法上有@property
只有一個self參數
調用時無需加括號 對象.方法
對於簡單的方法,當無需傳參且有返回值時可以使用
class Student: def __init__(self): pass @property def shuxing(self): return 1 obj = Student() print(obj.shuxing)
2. 嵌套(建模)
python 面向對象(二)