繁体   English   中英

与静态类变量一起使用的继承的静态方法返回NameError

[英]Inherited static methods used with static class variable return NameError

我有两节课:

 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之类的代码来做到这一点吗?

来自以上@Joel Cornett的评论:

静态方法不能直接引用其包含的类。 如果需要此功能,请改用类方法。 或者,您可以使用完全限定域名(BaseService。class_variable)来访问类变量。 由于明显的原因,这是不理想的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM