Язык позволяет сослаться на метод, поэтому то, что вы спрашиваете, невозможно. Всегда допустимо делать num.double
, потому что вы можете сохранить ссылку в переменной для последующего использования, например.
a = num.double
a() # calling the method
В подобных случаях вы можете сделать это так, что вызов num.double
на самом деле что-то делает, используя свойство декоратор.
@property
def double(self):
self.number = self.number * 2
сейчас
n = Number(21)
n.double
print(n.number)
>>> 42
Но свойства больше используются для имитации атрибутов c. И кодировщику python, спотыкающемуся на этой конструкции, будет непросто разобраться с этим, так что я думаю, что лучше привыкнуть к соглашению ()
.