#python #python-3.x
Вопрос:
Первый код работает правильно, но когда я объявляю функцию(или метод) «toStr» внутри класса, я получаю ошибку. Что не так с этим кодом? Первый Код:
class Test: def __init__(self,hour,minute,second): self.hour=hour self.minute=minute self.second=second # Return String Time Format def toStr(self): return str(self.hour) ":" str(self.minute) ":" str(self.second) t=Test(10,20,50) print(toStr(t))
Второй код с ошибкой имени:
class Test: def __init__(self,hour,minute,second): self.hour=hour self.minute=minute self.second=second # Return String Time Format def toStr(self): return str(self.hour) ":" str(self.minute) ":" str(self.second) t=Test(10,20,50) print(toStr(t))
Комментарии:
1. Вы не можете позвонить
print(toStr(t))
, если он принадлежит классу2. не могли бы вы, пожалуйста, быть более конкретными? Спасибо
Ответ №1:
Вот мой код,
class Test: def __init__(self,hour,minute,second): self.hour=hour self.minute=minute self.second=second # Return String Time Format def toStr(self): return str(self.hour) ":" str(self.minute) ":" str(self.second) t=Test(10,20,50) print(t.toStr())
вот мой вывод,
10:20:50
Вы не можете вызвать toStr
функцию вне t
объекта (тестового класса), вам нужно вызвать ее с помощью оператора dot, потому toStr
что функция Test
теперь принадлежит классу.
Комментарии:
1. @mohamadbari если я помог, пожалуйста, отметьте мой ответ как правильный, спасибо!
Ответ №2:
Вам нужно либо вызвать метод для объекта, как:
print(t.toStr())
или
print(Test.toStr(t))
Ответ №3:
-gt; Как вы работаете с объектно-ориентированными концепциями. вы должны быть знакомы с этим. всякий раз, когда вы создаете класс, вы должны создать его объект, чтобы использовать его функциональность
class MyTest: #class def __init__(self, hour, minute, second): #constructor self.hour=hour self.minute=minute self.second=second def toStr(self): #method return str(self.hour) ":" str(self.minute) ":" str(self.second) obj=MyTest(4,5,5) # class object print(obj.toStr()) # to call toStr() method you have to use it with a object.