我有两个班级:
class BaseService(object):
@staticmethod
def say_name:
return __class_variable__
class SubClassService(BaseService):
__class_variable__ = NOLA
当我像这样调用我的静态方法时:
SubClassService.say_name()
我得到了:
NameError: global name '__class_variable__' is not defined
过去使用SQLAlchemy,我认为这是我可以轻松完成的事情,但事实证明他们使用@declared_attr
自定义装饰器来实现类似的功能。
我可以不使用类似SQLAlchemy的代码吗?
答案 0 :(得分:0)
来自@Joel Cornett的上述文章:
staticmethod不能直接引用其包含的类。如果您需要此功能,请改用classmethod。或者, 您可以使用完全限定名称(BaseService。 class_variable ) 访问类变量。出于显而易见的原因,这并不理想。