[问题] 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