Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python将函数传递给对象_Python_Oop_Object_Attributes - Fatal编程技术网

Python将函数传递给对象

Python将函数传递给对象,python,oop,object,attributes,Python,Oop,Object,Attributes,我试图创建一个类,该类允许用户创建一个自定义按钮对象,该对象保存按钮的外观属性,以及一个函数,我希望在调用按钮的executeFunction()命令时能够运行该函数 这是正确的方法,还是有具体的方法来执行此类操作?您应该 newButton = Button("Example", red, foo) 这将传递foo,而不是像代码那样传递foo的返回值。您应该 newButton = Button("Example", red, foo) 这将传递foo,而不是像代码那样传递foo的返回值。

我试图创建一个类,该类允许用户创建一个自定义按钮对象,该对象保存按钮的外观属性,以及一个函数,我希望在调用按钮的executeFunction()命令时能够运行该函数

这是正确的方法,还是有具体的方法来执行此类操作?

您应该

newButton = Button("Example", red, foo)
这将传递foo,而不是像代码那样传递foo的返回值。

您应该

newButton = Button("Example", red, foo)

这将传递foo,而不是像代码那样传递foo的返回值。

在python中,函数也是对象,可以传递。您的代码中有一个小错误,这是一个简化的简单方法

第一个问题是调用函数
foo
,同时将其传递给
按钮
类。这将把
foo()
的结果传递给类,而不是函数本身。我们只想通过
foo

我们可以做的第二件好事是将函数分配给一个名为function(或executeFunction,如果需要)的实例变量,然后可以通过
newButton.function()
调用它


在python中,函数也是对象,可以传递。您的代码中有一个小错误,这是一个简化的简单方法

第一个问题是调用函数
foo
,同时将其传递给
按钮
类。这将把
foo()
的结果传递给类,而不是函数本身。我们只想通过
foo

我们可以做的第二件好事是将函数分配给一个名为function(或executeFunction,如果需要)的实例变量,然后可以通过
newButton.function()
调用它


如果我传入一个这样的函数,我应该能够从一个方法调用它,非常好?如果我传入一个这样的函数,我应该能够从一个方法调用它,非常好?red定义了吗?您可能正在寻找“red”。不,我只是以它为例,它通常是一个RGB元组。是否定义了red?你可能在寻找“红色”,不,我只是用它作为例子,它通常是一个RGB元组。
def foo():
    print "bar"

class Button(object):

    def __init__(self, name, color, function):
        self.name = name
        self.color = color
        self.function = function


newButton = Button("Example", red, foo)
newButton.function()