Функции в Python с или без скобок? - PullRequest
0 голосов
/ 09 июня 2018

В Python есть функции, которым нужны скобки, а некоторые - нет, например, рассмотрим следующий пример:

a = numpy.arange(10)
print(a.size)
print(a.var())

Почему функцию размера не нужно писать в скобках, в отличие отфункция дисперсии?Есть ли общая схема за этим или вам просто нужно запомнить ее для каждой функции?

Кроме того, есть функции, которые пишутся перед аргументом (в отличие от примеров выше), например

a = numpy.arange(10)
print(np.round_(a))

Почему бы не написать a.round_ или a.round_()?

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Похоже, вас смущают 3 различных понятия, которые не являются специфичными для python, а скорее для (объектно-ориентированного) программирования.

  • атрибуты являются значениями, характеристикамиобъекта.Подобно array.shape
  • методы - это функции, которые объект может выполнять, действия, которые он может выполнять.array.mean()
  • статические методы - это функции, которые присущи классу объектов, но не нуждаются в объекте для выполнения, как np.round_()

Звучит так, как будто вы должны заглянуть в ООП: здесь приведен пример для Python по методам .


Кроме того, более питоническими и специфическими атрибутами являются property s.Это методы (объекта), которые не вызываются с ().Звучит немного странно, но может быть полезно;посмотрите на это.

0 голосов
/ 09 июня 2018

arrange возвращает ndarray.size это не функция, это просто атрибут класса ndarray.Так как это просто значение, а не вызываемое, оно не требует скобок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...