1. 程式人生 > 其它 >python 面向物件(二)

python 面向物件(二)

技術標籤: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)