Могу ли я использовать имя переменной "type" в качестве аргумента функции в Python?
Можно ли использовать type
как имя аргумента функции python?
def fun(name, type):
....
Ответы
Ответ 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