2016-02-15 3 views
1

У меня есть проблема с этим кодом, и я не могу его решить! Пожалуйста, простите меня, я newbiee ..ТипError: str() отсутствует 1 обязательный позиционный аргумент: 'self'

моего код:

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' 

Спасибо за вашу помощь

ответ

0

Прежде всего, вы не должны называть свои методы или переменные после того, как в построенных зарезервированных типов, как strlist и int

вы, вероятно, пытаетесь вызвать метод как статический метод, создать экземпляр вашего класса и назовите его

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) 
3

str() является методом экземпляра ваш Case класс. У вас есть 2 варианта, а для вызова:

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

или

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

И, как говорит ошибка, вы не передавая экземпляр Case методу str.

Смежные вопросы