TypeError:str()缺少1个必需的位置参数:'self'

时间:2016-02-15 22:39:45

标签: python class typeerror

我对此代码有疑问,我无法解决! 请原谅,我是新手......

我的代码:

class Case: 
'''
 '''

def __init__ (self):
    '''
    '''

    self.__valeur = 0
    self.__cache = True

def str(self):
    '''
    '''

    if self.__cache == True :
        return '-'
    if self.__valeur == -1 :
        return '*'
    if self.__valeur == 0 :
        return ' '
    else :
        return self.__valeur

错误:

    >>> demineur.Case.str()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: str() missing 1 required positional argument: 'self'

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

str()Case类的实例方法。您有2个选项可以调用它:

>>> instance = Case()
>>> instance.str()

>>> instance = Case()
>>> Case.str(instance) 

正如错误所示,您没有将Case的实例传递给str方法。

答案 1 :(得分:0)

首先,您不应在内置保留类型(如str listint

之后命名您的方法或变量

你可能试图像静态方法一样调用方法,创建类的实例并调用它

Case.str() # Wrong because you're not passing an instance to it

mycase = Case() 
mycase.str() # my case automatically gets passed here implicity i.e mycase.str(mycase)