[問題] Class中有關input的疑問
各位版友好
不好意思,因為不知道該輸入甚麼關鍵字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自己另外輸入想要的數字
先謝謝版友閱讀我的問題
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.22.64.151 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1587009252.A.E43.html
推
04/16 12:23,
4年前
, 1F
04/16 12:23, 1F
推
04/16 13:15,
4年前
, 2F
04/16 13:15, 2F
→
04/16 13:15,
4年前
, 3F
04/16 13:15, 3F
謝謝樓上兩位的回答,我目前的寫法也是參數先用None
def BMI(self, h=None, w=None):
if bool(h):
self.h=h
if bool(w):
self.w=w
return self.w/((self.h/100)**2)
是有用這方法達到需求
※ 編輯: jasonhsu14 (211.22.64.151 臺灣), 04/16/2020 13:45:02
→
04/16 13:51,
4年前
, 4F
04/16 13:51, 4F
推
04/16 13:54,
4年前
, 5F
04/16 13:54, 5F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):