Python - 类范围

时间:2015-08-20 10:51:33

标签: python

我有一个非常好的python类。

但是我需要从另一个类中替换一个函数作为我班级的一部分。

class myclass:

   def display(self, jobid):   #Self here is referencing my class
       zoom = NavigationToolbar2.zoom
       def new_zoom(self, *args, **kwargs):
           if self.blurEnabled:    #Self is referencing NavigationToolbar2 Instance instead of my class
               self.toggleBlur()   #Self is referencing NavigationToolbar2 Instance instead of my class
           zoom(self, *args, **kwargs)
       NavigationToolbar2.zoom = new_zoom

这里的代码效果很好,除了我无法访问我自己的类,所以我自己的函数失败了。有人能帮忙吗?

1 个答案:

答案 0 :(得分:1)

原因是变量self在内部范围内过载。尝试重命名,例如

class myclass:

   def display(self, jobid):   #Self here is referencing my class
       zoom = NavigationToolbar2.zoom
       def new_zoom(toolbar, *args, **kwargs):
          ...
       NavigationToolbar2.zoom = new_zoom