以 Pythonic 方式在类中分配属性值 [关闭]

问题描述 投票:0回答:0

我一直在研究干净的编码指南。然而,对于我用 Python 编写的几乎每个类,我都会提出一个问题,即如何以干净的 Pythonic 方式设置类属性。

您是愿意使用 getter 函数在构造函数中设置它们,还是调用 setter 函数?

考虑以下完全虚构的示例:

class ClassWithGet:
    def __init__(self, temperature_in_fahrenheit):
        self.temp_in_fahrenheit = temperature_in_fahrenheit
        self.temp_in_celsius = self.fahrenheit_to_celsius(temperature_in_fahrenheit)

    @staticmethod
    def fahrenheit_to_celsius(fahrenheit):
        celsius = (fahrenheit - 32) * 5/9
        return celsius

或者,作为替代:

class ClassWithSet:
    def __init__(self, temperature_in_fahrenheit):
        self.temp_in_fahrenheit = temperature_in_fahrenheit
        self.set_celsius()

    def set_fahrenheit(self):
        self.temp_in_celsius = (self.temp_in_fahrenheit - 32) * 5/9

我不想详述具体的例子。假设华氏度到摄氏度的转换是针对此类的,并且没有在代码的其他任何地方使用。还要考虑温度变量是“最终的”。所以,这实际上只是关于如何初始设置属性。

我真的很想知道您对 Clean Code 的看法。

python class constructor coding-style
© www.soinside.com 2019 - 2024. All rights reserved.