Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
242 views
in Technique[技术] by (71.8m points)

class - Referencing static method from static variable in Python

I have a static variable in which I want to store a reference to a static method in the same class, but it appears to not be possible. What I'm trying to do looks like this:

class TestClass:
    mymethod = TestClass.some_method

    @staticmethod
    def some_method():
        pass

But yields this error:

  File "test.py", line 239, in TestClass
    mymethod = TestClass.some_method
NameError: name 'TestClass' is not defined

For more specific context, I want to define a field in a Django model where the default is determined by a static method in the same class, but I run into this problem. Is there another way to tackle this problem?

Here is more complete example:

class Employee(models.Model):
    default_boss = None

    node = models.ForeignKey('Boss', related_name='Employee', default=get_default_boss)

    @staticmethod
    def get_default_boss():
        return BossLib.enumerate_bosses().get_default()
question from:https://stackoverflow.com/questions/66052273/referencing-static-method-from-static-variable-in-python

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...