[問題] Class中有關input的疑問

作者: jasonhsu14 (小健人)   2020-04-16 11:54:10
各位版友好
不好意思,因為不知道該輸入甚麼關鍵字google
所以特來向版友請教
先附上程式碼
class Human1:
def __init__(self, h=160, w=50):
self.h=h
self.w=w
print(f'H={self.h} cm. W={self.w} kg')
def BMI(self):
return self.w/((self.h/100)**2)
H1=Human1()
print(H1.BMI())
在這例子中可以得到輸出結果如下:
H=160 cm. W=50 kg
19.531249999999996
目前是根據在創建這個類別時所預設的160跟50去計算BMI
那我可以如何去修改這個 def BMI(self)
使得我不僅可以在
print(H1.BMI())得到當初創建類別時的預設或輸入的數字
也可以在
print(H1.BMI(170,80))時,得到不一樣的結果
有想過直接在 def BMI(self, h=160, w=50)這樣去寫
但這樣又等於重複做了跟__init__一樣的事情
所以想詢問有無辦法讓BMI變成一個
不輸入的話就會根據最一開始創建類別的預設(或輸入)數值
但也可以讓BMI自己另外輸入想要的數字
先謝謝版友閱讀我的問題
作者: TakiDog (多奇狗)   2020-04-16 12:23:00
寫判斷 沒帶args吃self
作者: ddavid (謊言接線生)   2020-04-16 13:15:00
參數寫h=None,裡面用到h都改寫(self.h if h is None else h)如何呢?
作者: jasonhsu14 (小健人)   2020-04-16 13:51:00
回文完才發現 2樓有回覆!!
作者: ddavid (謊言接線生)   2020-04-16 13:54:00
我也是第一感推文完才想到回文的處理方式XD

Links booklink

Contact Us: admin [ a t ] ucptt.com