python 特性和方法同名_Python类:方法与属性同名
我在建一個班暖氣。此類的每個實例都具有屬性“temperature”。Heating還必須支持將屬性“temperature”打印為整數的temperature()方法。在
當我調用temperature()方法時,我得到錯誤“int”對象不可調用,因為自身溫度已定義為整數。在
我怎么解決這個問題?在
代碼:class Heating:
"""
>>> machine1 = Heating('radiator kitchen', temperature=20)
>>> machine2 = Heating('radiator living', minimum=15, temperature=18)
>>> machine3 = Heating('radiator bathroom', temperature=22, minimum=18, maximum=28)
>>> print(machine1)
radiator kitchen: current temperature: 20.0; allowed min: 0.0; allowed max: 100.0
>>> machine2
Heating('radiator living', 18.0, 15.0, 100.0)
>>> machine2.changeTemperature(8)
>>> machine2.temperature()
26.0
>>> machine3.changeTemperature(-5)
>>> machine3
Heating('radiator bathroom', 18.0, 18.0, 28.0)
"""
def __init__(self, name, temperature = 10, minimum = 0, maximum = 100):
self.name = name
self.temperature = temperature
self.minimum = minimum
self.maximum = maximum
def __str__(self):
return '{0}: current temperature: {1:.1f}; allowed min: {2:.1f}; allowed max: {3:.1f}'.format(self.name, self.temperature, self.minimum, self.maximum)
def __repr__(self):
return 'Heating(\'{0}\', {1:.1f}, {2:.1f}, {3:.1f})'.format(self.name, self.temperature, self.minimum, self.maximum)
def changeTemperature(self, increment):
self.temperature += increment
if self.temperature < self.minimum:
self.temperature = self.minimum
if self.temperature > self.maximum:
self.temperature = self.maximum
def temperature(self):
return self.temperature
# testen van het programma
if __name__ == '__main__':
import doctest
doctest.testmod()
總結
以上是生活随笔為你收集整理的python 特性和方法同名_Python类:方法与属性同名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 王者个性签名在哪? 王者荣耀官方网站
- 下一篇: 保卫萝卜3需要联网吗