python 面向物件(二)
阿新 • • 發佈:2021-01-28
技術標籤:Python
一、類中定義成員方法
""" 格式一: class 類名: def 方法名(self): 方法體... """
(1.1)定義成員方法,並使用成員變數
class Student: #成員變數 def __init__(self): self.name=None self.gender=None #成員方法: self 僅在宣告時佔位, 無需傳遞具體引數 def play(self): print(self.name+'的性別 '+self.gender+",她正在玩遊戲!") def study(self): print(self.name+'的性別 '+self.gender+",她正在學習!") # #建立物件 stu =Student() #賦值 stu.name='mike' stu.gender='Woman' #呼叫方法 stu.play() stu.study()
(1.2)定義成員方法,有引數
class Student: #成員變數 def __init__(self): self.name=None self.gender=None #成員方法帶引數: self 僅在宣告時佔位, 無需傳遞具體引數 def play(self,thing): print(f'{self.name}的性別-{self.gender},她正在玩{thing}') def study(self,thing='java'): # 預設形參 print(f'{self.name}的性別-{self.gender},她正在學習{thing}') #建立物件 stu =Student() #賦值 stu.name='samantha' stu.gender='Woman' #呼叫方法 stu.play('CS') stu.study()
二、__init__() 方法在建立物件時被執行, 無需手工呼叫即可執行。
class Emp: def __init__(self): self.ename=None #初始化成員變數這個方法,可以寫多個,是按順序執行的! def __init__(self): self.ename = 'zhang' def __init__(self): self.ename = 'vv' print('start....') #建立物件時,自動執行初始化方法 emp =Emp() print('end....') print(emp.ename) # 注意:說明有多個這個__init__(self)方法時,按照順序執行!,並建立物件直接執行的哦!
三、__str__() 方法在使用print列印物件時, 會自動執行程式碼, 也屬魔術方法。
格式:
def __str__(self):
return “資訊”
class Cat:
def run(self):
return ('貓跑步!!')
class Dog:
def __str__(self):
return ('dog is running!')
cat =Cat()
# <__main__.Cat object at 0x000001FB558E9280> 物件的記憶體地址 沒有什麼含義
print(cat)
dog=Dog()
#列印物件時,會自動執行
print(dog)