iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0
Python

30天零基礎學習Python程式語言系列 第 25

Day 25: 方法鏈 + super 方法 + 物件作為引數

  • 分享至 

  • xImage
  •  

方法鏈Chaining

class Car:
    def turn_on(slef):
        print("你啟動了引擎")
        #回傳物件本身
        return self
        
    def drive(slef):
        print("你開車了")
        return self
        
    def break(slef):
        print("你踩了煞車")
        return self
    
    def turn_off(slef):
        print("你關閉了引擎")
        return slef
        
car = Car()
car.turn_on().drine().break().turn_off()

super函式
範例1:正方形

class Rectengle:
    def __init__(slef, length, width):
    slef.length = length
    slef.width = width
    print("矩形的初始化已執行")
    
class Square(Rectengle):
    def __init__(slef, length, width):
        super().__init__(length, width)
        print("正方形的初始化已執行")
        
aquare = Square(500, 500)
       

矩形的初始化已執行
正方形的初始化已執行

範例2:立方體

class Rectengle:
    def __init__(slef, length, width):
    slef.length = length
    slef.width = width
    print("矩形的初始化已執行")
    
class Cube(Rectengle):
    def __init__(slef, length, width, height):
    super().__init__(length, width)
    self.height = height
    print(f"立方體的長寬高是:{height}, {width}, {height}")
    
cube = Cube(10,20,30)
    

矩形的初始化已執行
立方體的長寬高是:10,20,30

物件作為引數:修改物件,不需建立新的

class Car:
    color = None
    
def change_color(car, color):
    car.color = color
    
car1 = Car()
car2 = Car()
car3 = Car()

print(car1.color)
print(car2.color)
print(car3.color)

change_color(car1, "紅色")
change_color(car2, "黑色")
change_color(car3, "藍色")

print(car1.color)
print(car2.color)
print(car3.color)

None
None
None
紅色
藍色
黑色

上一篇
Day 24: 繼承 + 重寫方法
下一篇
Day 26: 鴨子型別 + 獠牙運算符 + 函式指派給變數
系列文
30天零基礎學習Python程式語言30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言