Подтвердить что ты не робот

Могу ли я использовать имя переменной "type" в качестве аргумента функции в Python?

Можно ли использовать type как имя аргумента функции python?

def fun(name, type):
    ....
4b9b3361

Ответ 1

Вы можете, но не должны. Это не очень хорошая привычка использовать имена встроенных модулей, потому что они переопределяют имя встроенного в эту область. Если вы должны использовать это слово, слегка измените его для данного контекста.

Хотя для небольшого проекта, который не использует type, это, вероятно, не имеет значения, лучше избегать использования имен ключевых слов/встроенных модулей. Руководство по стилю Python предоставляет решение для этого, если вы абсолютно должны использовать имя, которое конфликтует с ключевым словом:

single_trailing_underscore_: используется конвенции, чтобы избежать конфликтов с       Ключевое слово Python, например

Ответ 2

Вы можете, и это хорошо. Несмотря на то, что совет не создавать тени, важно, он применяется сильнее, если идентификатор является общим, так как это увеличит путаницу и столкновение. Он не отображается, тип может вызвать путаницу здесь (но вы узнаете об этом больше, чем кто-либо другой), и я мог бы использовать именно то, что у вас есть.

Ответ 3

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

Ответ 4

Вы можете, но вы будете маскировать встроенный тип имени. Так что лучше не делать этого.

Ответ 5

Вы можете использовать _type для этого

#  Example
def foo(_type):
    pass

Если вы используете type, вы не можете использовать type() в этой функции

>>> #For Example
>>> type('foo')
<type 'str'>
>>> type = 'bar'
>>> type('foo')
...
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: 'str' object is not callable