将在类的初始化中创建的变量使用到staticmethod函数中

时间:2019-06-05 21:29:11

标签: python python-3.x

我有一堂课;在其构造函数中正在分配变量。

我想从此类内部的函数中调用此变量,这是一种静态方法。我似乎找不到正确的方法。

class myclass:
    def __init__(self):
        myvariable = os.cwd()

    @staticmethod
    def myfunction(someparameter)

        print(myclass.myvariable)
        print(someparameter)

当我从python运行类时,出现错误消息myvariable不存在

mytestclass = myclass
myclass.myfunction("foo")

我尝试同时使用self.myvariablemyvariable,但没有任何区别。我没有使用@classmethod,因为如果我叫cls.myvariable,我将不会得到该myclass的特定实例。如果我有多个实例,我可能会遇到问题。

1 个答案:

答案 0 :(得分:0)

myVariable在这种情况下只是一个临时变量,它仅在__init__方法中可见,甚至在该类的其他方法中也不可见。您也可以在__init__方法中使用myclass.myvariable。

您可以执行以下操作。我还添加了一个实例计数器:

class myclass:
    counter= 0
    def __init__(self):
        myclass.myvariable = os.cwd()
        myclass.counter+= 1

    @staticmethod
    def myfunction(someparameter):
        print(myclass.myvariable)
        print(myclass.counter)
        print(someparameter)