Рассмотрим следующее:
class objectTest():
def __init__(self,a):
self.value = a
def get_value(self):
return self.value
class execute():
def __init__(self):
a = objectTest(1)
b = objectTest(1)
print(a == b)
print(a.get_value() == b.get_value)
print(a.get_value() == b.get_value())
print(a.get_value == b.get_value)
if __name__ == '__main__':
execute = execute();
Этот код возвращает
>>>
False
False
True
False
Учитывая, что get_value является функцией, я ожидал бы, что выполнение остановится и вернет ошибку, но это не так. Может кто-нибудь объяснить, почему интерпретатор python допускает такой синтаксис вместо повышения ошибки атрибута, который в моем случае спас бы мне драгоценное время.