[英]How to reference the attached class from its mixin?
我有以下 mixin class 和主机 class,结构如下:
class MyMixin:
@staticmethod
def preprocessIncomings(bliss, mod, **kw):
my_logger(f"{__class__} is doing it's job now!")
....
class MyAttachedClass(MyMixin):
...
令我惊讶的是,记录器并没有像我预期的那样引用MyAttachedClass
。 相反,它指的是混合 class MyMixin
。
有没有办法从 mixin static 方法中引用主机 class ?
总结评论中的优点:不, staticmethod
方法专门设计为不允许您访问调用它的实例或 class,因此无法从preprocessIncomings
中知道它是通过MyAttachedClass
。 __class__
是一个局部变量,您可以将其视为一个闭包(即,它是从定义代码的外部 scope 获得的)。
您可以使用inspect.stack
做更多事情,但更明显的解决方案是将方法更改为classmethod
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.