Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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 传递1个参数,它';他说我';我过了2级_Python_Parameter Passing - Fatal编程技术网

Python 传递1个参数,它';他说我';我过了2级

Python 传递1个参数,它';他说我';我过了2级,python,parameter-passing,Python,Parameter Passing,此代码正在打印: TypeError:correctAll()完全接受 1个参数(给出2个) 但是AFAIKos.getcwd()返回一个字符串。。这里出了什么问题?您需要接受self作为参数,或者使用staticmethoddecorator import os import sys class Corrector: def correctAll(dir): print "ok" c = Corrector() c.correctAll(os.getcwd())

此代码正在打印:

TypeError:correctAll()完全接受 1个参数(给出2个)


但是AFAIK
os.getcwd()
返回一个字符串。。这里出了什么问题?

您需要接受
self
作为参数,或者使用
staticmethod
decorator

import os
import sys

class Corrector:

    def correctAll(dir):
        print "ok"

c = Corrector()
c.correctAll(os.getcwd())

这两者之间的区别在于您是否希望该方法能够访问它所调用的实例。如果是,则使用第一个实例,该实例将作为
self
提供。否则,您可以使用第二个


Python方法的工作方式是显式接受它们绑定到的对象作为第一个参数(
self
在这里是规范的,但它实际上可以是任何东西)。然后在调用发生时隐式传递该参数。

您需要接受
self
作为参数或使用
staticmethod
装饰器

import os
import sys

class Corrector:

    def correctAll(dir):
        print "ok"

c = Corrector()
c.correctAll(os.getcwd())

这两者之间的区别在于您是否希望该方法能够访问它所调用的实例。如果是,则使用第一个实例,该实例将作为
self
提供。否则,您可以使用第二个


Python方法的工作方式是显式接受它们绑定到的对象作为第一个参数(
self
在这里是规范的,但它实际上可以是任何东西)。然后在调用发生时隐式传递该参数。

您的correctAll缺少
self
参数:所有实例方法必须将
self
作为其第一个参数,它表示“对象本身” 换句话说,
c.correctAll(x)
就像
Corrector.correctAll(c,x)

pythonshell示例

class Corrector:

    @staticmethod
    def correctAll(dir):
        print "ok"

另请参见:

您的correctAll缺少
self
参数:所有实例方法必须将
self
作为其第一个参数,它表示“对象本身” 换句话说,
c.correctAll(x)
就像
Corrector.correctAll(c,x)

pythonshell示例

class Corrector:

    @staticmethod
    def correctAll(dir):
        print "ok"

另请参见:

在python中,必须明确地接受名为
self的实例参数(而其他语言只是自动提供)。因此,在python中,您的方法定义必须看起来像
def correctAll(self,dir)
,您必须明确地接受名为
self
的实例参数(而其他语言只是自动提供)。因此,您的方法定义必须看起来像
def correctAll(self,dir)

您是否也应该在参数列表中定义
self

import os
import sys

class Corrector:

    def correctAll(self, dir):
        print "ok"

c = Corrector()
c.correctAll(os.getcwd())
级别校正器: def correctAll(自身,方向): 打印“确定”
也许我错了…

你不也应该在参数列表中定义
self

import os
import sys

class Corrector:

    def correctAll(self, dir):
        print "ok"

c = Corrector()
c.correctAll(os.getcwd())
级别校正器: def correctAll(自身,方向): 打印“确定”
也许我错了…

我不懂python,但是否有可能存在一个默认传入的回调参数以及您传入的参数?我不懂python,但是否有可能存在一个默认传入的回调参数,当然,在Python中,
staticmethod
没有要求所有内容都在一个类中的语言那么需要……当然,
staticmethod
没有要求所有内容都在一个类中的语言那么需要。。。