将方法添加到类中的类

时间:2013-03-18 23:36:59

标签: python

在这里完成大脑屁,甚至不确定我在问正确的问题。如何添加/更改类中存在的类的方法?

我正在构建一个在QtDesigner中设计的QT GUI。我的Python程序导入并创建一个子类到GUI文件类的新类。我想将方法​​更改为该类中的按钮。

所以基本上我有以下内容,我想为'aButton'添加一个方法。

qtDesignerFile.py

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        self.aButton = QtGui.QPushButton()

myPythonFile.py

import qtDesignerFile

class slidingAppView(QMainWindow,slidingGuiUi.Ui_MainWindow):
    def __init__(self,parent=None):
        super(slidingAppView,self).__init__(parent)

2 个答案:

答案 0 :(得分:2)

为了增加Joran的答案,方法如下:

def foo():
    pass

instance.foo = foo

将像静态方法一样(它们不会将实例作为第一个参数传递)。如果要添加绑定方法,可以执行以下操作:

from types import MethodType

def foo(instance):
    # this function will receive the instance as first argument
    # similar to a bound method
    pass

instance.foo = MethodType(foo, instance, instance.__class__)

答案 1 :(得分:0)

self.aButton.PrintHello = lambda : print "hello!"

def aMethod():
    do_something()

self.aButton.DoSomething = aMethod 

要么应该工作......可能还有更多方法...这假设aButton是一个继承自Object的python类