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 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…