Python Can';我不知道如何将变量传递给类中的函数

Python Can';我不知道如何将变量传递给类中的函数,python,Python,因此,我现在有信心使用函数,并传递值 比如说 def myfunction(arg1,arg2,arg3): print 'my args %s %s %s' % (arg1, arg2, arg3) 然后我可以如下调用该函数 myfunction(arg1,arg2,arg3) 我想做的是将myfunction移动到MyClass中: MyClass(): myfunction(arg1,arg2,arg3) 我不知道如何传入或从外部调用这些参数(变量),因为所有在线示例

因此,我现在有信心使用函数,并传递值

比如说

def myfunction(arg1,arg2,arg3):
    print 'my args %s %s %s' % (arg1, arg2, arg3)
然后我可以如下调用该函数

myfunction(arg1,arg2,arg3)
我想做的是将myfunction移动到MyClass中:

MyClass():
    myfunction(arg1,arg2,arg3)
我不知道如何传入或从外部调用这些参数(变量),因为所有在线示例似乎都不符合这种情况


很抱歉,如果这是非常基本/基本的,但我正在努力跨越我的理解差距

您需要定义类,然后将其用作方法。 如果该方法不是静态的,则需要先创建类的实例,然后才能使用该方法。例如:

class MyClass(object):
    def myfunction(self, arg1, arg2, arg3):
        print 'my args %s %s %s' % (arg1, arg2, arg3)

# usage
my_class_instance = MyClass()
my_class_instance.myfunction('1', '2', '3')

顺便说一句,我发现很难相信您找不到任何相关信息,因为这是类的最基本用法。

我建议您从阅读关于类的教程开始:当您在类中定义方法时,Python将当前实例作为第一个参数传递,除非您告诉它不要这样做。惯例是调用第一个参数
self
。因为您的函数与当前实例无关,所以看起来您需要一个:

注意这里没有
self
参数,因为这是一个静态方法。然后你会像这样打电话:

MyClass.myfunction("a","b","c")

阅读此问题了解更多信息:

类不仅仅是函数的包装器,它们提供了新的抽象级别。我强烈建议您阅读该文档,并大致阅读面向对象编程

首先,您的类设置不正确:

class MyClass():
    def __init__(self):
        #classes usually want to have a constructor
        pass
其次,类中的每个函数都需要将self作为第一个参数:

def myfunction(self, arg1, arg2, arg3):
    #functionality here
然后必须创建该类的实例

instance = MyClass()
#instance will be of type MyClass.
现在可以在该实例上调用函数:

instance.myfunction('1','2','3')

object.myfunction(x,y,z)
如果它没有对当前实例的引用,则作为
MyClass.myfunction
(以及添加staticmethod decorator)调用。或者如果是这样的话:在类中
myfunction(arg1,arg2,arg3)
应该是
myfunction(self,arg1,arg2,arg3)
,因为需要传递类参数。然后通过创建实例并使用该方法调用。
instance.myfunction('1','2','3')