我可以在Python中声明除类属性之外的_uinit__uuu方法中的一些变量吗?

我可以在Python中声明除类属性之外的_uinit__uuu方法中的一些变量吗?,python,class,oop,methods,Python,Class,Oop,Methods,考虑以下代码: class ElasticMaterial(Material): def __init__(self,StressState,e,nu,alpha): Material.__init__(self,StressState) if self.StressState=='threed': lv=6 else: lv=4 self.e=e self

考虑以下代码:

class ElasticMaterial(Material):
    def __init__(self,StressState,e,nu,alpha):
        Material.__init__(self,StressState)
        if self.StressState=='threed':
            lv=6  
        else:
            lv=4
        self.e=e
        self.nu=nu
        self.alpha=alpha

这有效吗?如果是这样,我如何在同一类的其他方法中调用lv?如果没有,我如何修改代码?

\uuu init\uuu
中创建其他方法可以访问的变量的唯一方法是将它们定义为
self
上的属性。我不知道为什么要避免属性。

这是完全正确的。您可以在构造函数中声明非属性变量。您可以用这种方式定义变量lv,但是如果您要从其他方法调用它,为什么不尝试将其声明为属性变量?那么以下内容是否有效?类ElasticMaterial(Material):定义初始值(self,StressState,e,nu,alpha):材料。如果self.StressState='threed':self.lv=6其他:self.lv=4 self.e=e self.nu=nu self.alpha=alpha,则初始值(self,StressState)为材料