上篇跟各位教學 def 用法,這篇會跟大家說明 Class 的用法與 def 結合。
Class 跟 def 其實有很大的關係,基本上 Class 會包覆著 def,但是不是一定說要包著才能用,大家可以想像 Class就是一個箱子,而 def 就是箱子裡面的工具,當你今天要用某個工具的時候,你打開這個箱子就是呼叫 Class 然後再拿出工具就是.呼叫相關方法,這就是一個簡單的流程。
class Account:
def __init__(self, name, number, balance):
self.name = name
self.number = number
self.balance = balance
def deposit(self, amount):
if amount <= 0:
raise ValueError('amount must be positive')
self.balance += amount
def withdraw(self, amount):
if amount > self.balance:
raise RuntimeError('balance not enough')
self.balance -= amount
def __str__(self):
return 'Account({0}, {1}, {2})'.format(
self.name, self.number, self.balance)
上方是參考資料網站中的 bank 程式碼,它將所需要的方法列入 Class 中,當我今天需要某一項功能時就呼叫 Account 並且要利用方法時就 Account.deposit()等等的方式,就可以使用,它就這麼簡單,而且運算的參數可以帶入 Class中,並且在裏頭直接做一連串的判斷與執行,就可以達成目標,不過有一點要注意,因為是連貫性的關係,如果在中間銜接上寫的方式不對的話,有時候會 Compiler 通過,但沒有成功輸出,通常是內部參數在設定出問題。
def 熟悉的時候就要嘗試利用 Class 做出一連串的程式碼來執行看看,因為這個方式到後面 PyQt 時大家會不斷地看到,所以這個方式一定要熟記
class human:
def __init__(self,name,old,Birthday_time,cellphone,rule):
self.name = name
self.old = old
self.birthday = Birthday_time
self.cellphone = cellphone
self.rule = rule
def detect_year(self):
if self.old >= 20:
print("成年人")
else:
print("未成年")
def Confirm_rule(self):
if self.rule == "student":
print("學生")
else:
print("社會人士")
def cellphone_check(self):
if len(self.cellphone) == 10:
print("手機號碼為台灣")
else:
print("國外號碼")
human_tool = human("Tom",19,"2020-12-25","0912345678","student")
human_tool.detect_year()
human_tool.Confirm_rule()
human_tool.cellphone_check()
以上我自己隨便寫的一套程式,只是簡單的人員辨識,大家可以隨意看看,供初學者參考參考。
這篇就只先跟大家介紹 Class 並且讓大家熟悉熟悉,下一篇我們會介紹將程式套入到別的程式中。
那麼謝謝大家觀看~~~~~~~
參考資料
Class 與 def 就像是兄弟,可分開,可在一起,但在一起又容易吵架,實在傷腦筋