Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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_Function_Class - Fatal编程技术网

在类中使用函数-python

在类中使用函数-python,python,function,class,Python,Function,Class,我在代码中定义了几个函数,我希望能够在我的一个类中调用它们。 我想将它们的一个名称作为参数传递,以便在类中选择要调用的正确函数 我在互联网上寻找过这样的东西,但我发现的是如何调用在同一个或另一个类中的类中定义的函数。我不能在类中定义我的函数,因为它们也调用其他函数 所以没有太多,但有我的代码: class _fonction_use_: def __init__(self,pos,function): self.pos=pos self.function=

我在代码中定义了几个函数,我希望能够在我的一个类中调用它们。 我想将它们的一个名称作为参数传递,以便在类中选择要调用的正确函数

我在互联网上寻找过这样的东西,但我发现的是如何调用在同一个或另一个类中的类中定义的函数。我不能在类中定义我的函数,因为它们也调用其他函数

所以没有太多,但有我的代码:

class _fonction_use_:
    def __init__(self,pos,function):
        self.pos=pos
        self.function=function
其中function是在类外部定义的一个函数的名称


因此,如果Fontion_use属于这个类,我希望像Fontion_use.function这样的东西返回我之前分配给它的函数。

因为函数是第一类对象,所以可以直接将它们传递给类

def somefunc():
    pass # do something

class MyClass(object):
    def __init__(self, pos, function):
        self.pos = pos
        self.function = function

myclass = MyClass(0, somefunc)

“我不能在我的类中定义我的函数,因为它们也调用其他函数”-这没有意义。类中的函数,即方法,可以调用它们喜欢的任何东西。是的,但这对我来说也是同样的问题。那么如何调用它们呢?简单地说:你想调用一个有名字的函数,对吗?首先,为什么不能传递函数本身而不是名称?是否确实要按名称引用?因为函数是第一类对象,所以可以传递函数本身。例如:如果您有def myfunc:pass-do-something,那么您可以调用obj=\u-fonction\u-use\u-0,myfunc。。。您可能想阅读PEP8中有关命名的内容……我的错,是的,我可以传递函数本身,我想,这将更容易。谢谢,因为我是从python开始的,所以我尝试了:myclass=myclass,然后是myclass.function=somefunc,但事实并非如此work@user我不太明白-你是说这个答案不管用,还是说你已经尝试过的代码不管用?是的,你的答案管用,只是因为我对课堂不太熟悉,我真的不明白为什么:myclass=myclass,那么myclass.function=somefunc就没有了work@User因为类也是第一类对象,所以myclass=myclass所做的一切就是将myclass作为myclass定义的别名。。。因此,myclass.function将为myclass分配一个类级属性。当您使用Myclass0时,somefunc您正在创建Myclass的一个实例,该实例有一个self,以便您可以将其分配给实际的实例。谢谢,我真的不理解这个类。。。