防止不同类型的python fron结合类变量
我遇到了有趣的函数绑定行为:
class MyClass:
def run(self):
print(type(self))
class MyHelperClass:
bar = MyClass.run
def foo(self):
self.bar()
MyHelperClass.bar()
当我运行 myHelperClass()。foo()
时,这发生了:
<class '__main__.MyHelperClass'>
# but run() isn't in this class
Traceback (most recent call last):
...
MyHelperClass.bar()
TypeError: run() missing 1 required positional argument: 'self'
# this makes sense
类变量从 self 时,该类变量被绑定到
self
>自我,即使类型不兼容?当我在班上访问它时,没有什么可绑定的,所以它是剩下的?
我能够防止该方法通过 bar = functools.partial(myclass.run)
限制。
我对为什么绑定正确的理解吗?拥有无绑定功能的类VAR和标准实例方法之间是否有区别?
是否有更好的方法来防止该方法的限制,而不是 partial()
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论