Пустые скобки для функции Python - PullRequest
0 голосов
/ 12 февраля 2020

Я обнаружил следующий код для создания пользовательской функции:

import numpy as np
import matplotlib.pyplot as plt

def generate_data(n):
    ϵ_values = []
    for i in range(n):
        e = np.random.randn()
        ϵ_values.append(e)
    return ϵ_values
data = generate_data(100)
plt.plot(data)
plt.show() #This is to plot

Я не понимаю пустые скобки () в коде.

Ответы [ 4 ]

2 голосов
/ 12 февраля 2020

Скобки предназначены для выполнения функции, а также для ее добавления параметров. Если функция может работать без каких-либо параметров, эти круглые скобки могут быть пустыми.

1 голос
/ 12 февраля 2020

Пустые скобки означают, что вызываемая вами функция не принимает аргументов или имеет предварительно определенные аргументы по умолчанию.

Когда функция является частью класса, мы называем ее «методом».

Пример:

Python имеет встроенный класс с именем str (строка), представляющий последовательность символов. У него есть несколько методов (функций внутри этого класса), один из которых isupper(). Этот метод не принимает аргументов и вернет True, если строка в верхнем регистре, и False в противном случае. Пример:

"hello".isupper()  # this returns false.

То, что вы вызываете в конце вашего кода, plt.show() - это метод (опять же, функция внутри класса, которая не принимает аргументов или имеет предварительно определенные значения по умолчанию) из matplotlib .pyplot.

Вы можете проверить документацию, чтобы увидеть все доступные функции для pyplot https://matplotlib.org/3.1.1/api/pyplot_summary.html если вы там go, нажмите любую функцию, затем нажмите ссылку [источник] , и вы увидите, как строится функция.

0 голосов
/ 12 февраля 2020

Круглые скобки используются для вызова функции. Сохранение () после любого слова означает вызов функции с таким именем. Скажем, функция

def fun(a, b):
  return a + b

Эта функция при вызове будет иметь 2 числа внутри (), например fun(2, 3). Аналогично, допустим, что функция имеет вид

def fun2():
  print('Hello World')

Эта функция может вызываться без передачи аргументов, например fun2().

В вашем коде первые скобки np.random.randn() означают вызов randn функция случайного модуля в пакете numpy. Аналогично, plt.show() означает вызов функции show() модуля matplotlib.pyplot.

0 голосов
/ 12 февраля 2020

Пустые скобки могут использоваться для вызова функции с параметрами по умолчанию или без аргументов - но к самой функции можно обращаться без использования скобок - только она ничего не сделает. См. Цель вызова функции без скобок python.

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