Я пришел, чтобы узнать, мы можем также сделать класс как отозвано без реализации функции __call__()
, и я пытаюсь написать некоторые вещи, как это, но я застрял: ниже мой кодСоздание класса отозван в питоне
class neg:
def __init__(self): # Classes are callables too
self.val = 54545
def __repr__(self):
return str(self.val)
if __name__=='__main__':
x=neg
print(x) #print(neg()) also shows nothing
#added by Merlin
print('value of x:', x)
Выполнение вышеуказанного ничего не делает, оно не печатает, что я здесь отсутствует?
Примера я читал, чтобы сделать класс вызываемым:
class Negate:
def __init__(self, val): # Classes are callables too
self.val = -val # But called for object, not work
def __repr__(self): # Instance print format
return str(self.val)
actions = [square, sobject, pobject.method, Negate] # Call a class too
for act in actions:
print(act(5))
Я установил основной он работает, но когда они говорят, что класс может быть отозваны , то это не должно быть
neg()
не это ?
Метод '__init__' является инициализатором. Это происходит, когда вы создаете экземпляр этого класса. Это никоим образом не является «вызываемым» в традиционном смысле. Пожалуйста, прочитайте документы или сообщите нам конкретно, чего вы пытаетесь достичь. – Zizouz212
«Выполнение вышеуказанного ничего не делает, оно не печатает». Вы должны что-то делать неправильно, этот точный пример кода распечатывал '', когда я его запускал. –
Tadhg, я исправил ошибку в соответствии с предложением, разве вы не увидели мой выделенный текст? –