跨类变量只初始化一次

时间:2016-01-22 19:11:16

标签: python variables scope global

我在使用Python的范围时遇到了一些麻烦。 我在类(basePrice)中初始化变量(STATIC)。值是静态的,初始化需要一些工作,所以我只想做一次。另一个类Item是一个经常创建的类。 Item对象需要使用price计算其变量basePrice。如何仅将basePrice初始化一次并在Item对象中使用它?

class STATIC:
    basePrice = 0
    def __init__(self):
        self.basePrice = self.difficultCalculation()
    def getBasePrice()
        return self.basePrice


import STATIC
class Item:
    price = 0
    def __init__(self,price_):
        self.price = price_ - STATIC.getBasePrice()

1 个答案:

答案 0 :(得分:0)

编写模块可能更好。例如,创建文件STATIC.py,如下所示。

basePrice = difficultCalculation()

def difficultCalculation():
    # details of implementation

# you can add other methods and classes and variables

然后,在包含Item的文件中,您可以执行以下操作:

from STATIC import basePrice

这将允许从该文件中的任何位置访问basePrice