跳到内容

编程基础/对象示例 Python

来自维基教科书,开放的书籍,为开放的世界
 # This class converts temperature between Celsius and Fahrenheit.
 # It may be used by assigning a value to either Celsius or Fahrenheit 
 # and then retrieving the other value, or by calling the to_celsius or
 # to_fahrenheit methods directly.
 #
 # References:
 #     https://www.mathsisfun.com/temperature-conversion.html
 #     https://wikibooks.cn/wiki/Python_Programming
 
 class Temperature:
     _celsius = None
     _fahrenheit = None
     
     @property
     def celsius(self):
         return self._celsius 
 
     @celsius.setter
     def celsius(self, value):
         self._celsius = float(value)
         self._fahrenheit = self.to_fahrenheit(self._celsius)
             
     @property
     def fahrenheit(self):
         return self._fahrenheit 
     
     @fahrenheit.setter
     def fahrenheit(self, value):
         self._fahrenheit = float(value)
         self._celsius = self.to_celsius(self._fahrenheit)
 
     def __init__(self, celsius=None, fahrenheit=None):
         if celsius != None:
             self._celsius = celsius
             self._fahrenheit = self.to_fahrenheit(celsius)
         if fahrenheit != None:
             self._fahrenheit = fahrenheit
             self._celsius = self.to_celsius(fahrenheit)
 
     def to_celsius(self, fahrenheit):
         return (fahrenheit - 32) * 5 / 9
         
     def to_fahrenheit(self, celsius):
         return celsius * 9 / 5 + 32
 
 
 # This program creates instances of the Temperature class to convert Cesius 
 # and Fahrenheit temperatures.
 
 def main():
     temp1 = Temperature(celsius=0)
     print("temp1.celsius =", temp1.celsius)
     print("temp1.fahrenheit =", temp1.fahrenheit)
     print("")
     
     temp1.celsius = 100
     print("temp1.celsius =", temp1.celsius)
     print("temp1.fahrenheit =", temp1.fahrenheit)
     print("")
     
     temp2 = Temperature(fahrenheit=0)
     print("temp2.fahrenheit =", temp2.fahrenheit)
     print("temp2.celsius =", temp2.celsius)
     print("")
 
     temp2.fahrenheit = 100
     print("temp2.fahrenheit =", temp2.fahrenheit)
     print("temp2.celsius =", temp2.celsius)
 
 main()
temp1.celsius = 0
temp1.fahrenheit = 32.0

temp1.celsius = 100.0
temp1.fahrenheit = 212.0

temp2.fahrenheit = 0
temp2.celsius = -17.77777777777778

temp2.fahrenheit = 100.0
temp2.celsius = 37.77777777777778

参考资料

[编辑 | 编辑源代码]
华夏公益教科书