Пытаюсь понять объектно-ориентированное программирование на python.Я новичок в программировании.У меня есть этот класс, который дает мне ошибку, которую я не понимаю, и я буду рад, если кто-нибудь сможет пролить больше света на это для меня:
class TimeIt(object):
def __init__(self, name):
self.name = name
def test_one(self):
print 'executed'
def test_two(self, word):
self.word = word
i = getattr(self, 'test_one')
for i in xrange(12):
sleep(1)
print 'hello, %s and %s:' % (self.word, self.name),
i()
j = TimeIt('john')
j.test_two('mike')
Если я запусту этот класс, я получу 'int' object is not callable" TypeError
Однако, если я предшествую i
с self
(self.i
), это сработает.
class TimeIt(object):
def __init__(self, name):
self.name = name
def test_one(self):
print 'executed'
def test_two(self, word):
self.word = word
self.i = getattr(self, 'test_one')
for i in xrange(12):
sleep(1)
print 'hello, %s and %s:' % (self.word, self.name),
self.i()
У меня вопрос, не i = getattr(self, 'test_one')
присваивает test_oneфункция i
?
Почему i()
не работает?
Почему self.i()
работает?
Почему i
* int
(отсюда 'int' object is not callable TypeError
)?
Это много вопросов.Заранее спасибо