在类中使用函数-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,以便您可以将其分配给实际的实例。谢谢,我真的不理解这个类。。。