1. 最簡單的類的定義
class
student()
: name =
'lili'
age =
0 sum1 =
0def
__init__
(self, name, age, sum1)
:# 建構函式
self.name = name
self.age = age
self.sum1 = sum1
defprint_msg
(self)
:print
(self.name, self.age)
2. 在例項方法中訪問類變數的兩種方法
def
print_sum1
(self)
:# 例項方法訪問sum1類變數
print
(self.__class__.sum1)
print
(student.sum1)
# 訪問例項變數
print
(self.sum1)
3. 如何定義乙個類方法
@classmethod
defplus_sum
(cls)
: cls.sum1 +=
1print
(cls.sum1)
4. 如何定義乙個靜態方法
@staticmethod
# 靜態方法, 物件和類都可以訪問
defadd()
: student.sum1 +=
1# 靜態方法也可以訪問類變數
print
(student.sum1)
5. 如何改變乙個方法的可見性
def
__change_age
(self, age)
:# 改變方法的可見性,在方法名字前加__變成私有
self.age = age
6.如何改變乙個例項變數的可見性類似,在變數之前加下劃線。但是你會執行發現
student1 = student(
'wang',17
,9)# 例項化
student1.change_age(8)
student1.__name =
'oo'
print
(student1.__name)
依舊可以執行,是否私有變數無效呢?其實不是,原因在於python的.操作會給student1新增乙個新的成員變數。
我們可以用student1.dict() 檢視student1的成員列表
7. 繼承
python 是支援多繼承的
class
human()
:sum=0
def__init__
(self, name, age)
: self.name = name
self.age = age
defget_name
(self)
:print
(self.name)
class
student
(human)
:# 繼承people類
如何在子類呼叫父類的建構函式
class
human()
:sum=0
def__init__
(self, name, age)
: self.name = name
self.age = age
defget_name
(self)
:print
(self.name)
class
student
(human)
:# 繼承people類
def__init__
(self, school, name, age)
:# 建構函式
self.school = school
# human.__init__(self, name, age) # 呼叫父類的建構函式, **注意這裡需要傳遞self**
super
(student, self)
.__init__(name, age)
# 推介使用這種方法呼叫父類建構函式
python 物件導向筆記
python 物件導向小結,最近在學習python,在學習到物件導向時有些記不住,特寫此筆記 1.定義類 class people num 0 def sayhello self print hello 2.定義物件 p people p.sayhello 3.建構函式 init class peo...
python物件導向筆記
封裝繼承 多型class man defeat self print 吃 def slpee self print 睡 建立乙個例項 xm man xm.eat 例項就是類建立出來的物件 dir defdemo test print 這是乙個函式 print dir demo print xm ma...
Python 物件導向(筆記)
標籤 空格分隔 2018 05 10 類 具有相同屬性和方法的物件集合 物件 萬物皆物件,具體實物和行為 類的建立 class cat 貓類 age 1 類成員,特徵 建立建構函式 def init self,name,color self.name name self.color color re...