¿Puedo usar type
como nombre para un argumento de función python?¿Puedo usar el nombre de variable "type" como argumento de función en Python?
def fun(name, type):
....
¿Puedo usar type
como nombre para un argumento de función python?¿Puedo usar el nombre de variable "type" como argumento de función en Python?
def fun(name, type):
....
Puede, pero no debe. No es una buena costumbre usar nombres de complementos porque anularán el nombre del built-in en ese ámbito. Si debe usar esa palabra, modifíquela ligeramente para el contexto dado.
Si bien probablemente no importe para un proyecto pequeño que no utiliza type
, es mejor no tener el hábito de usar los nombres de palabras clave/integradas. El Python Style Guide proporciona una solución para esto si es absolutamente necesario utilizar un nombre que está en conflicto con una palabra clave:
single_trailing_underscore_: utilizado por convención para evitar conflictos con palabra clave Python, por ejemplo,
Por cierto, ya que el tipo es una palabra tan genérica, a menudo usada, agregar un calificador como en "car_type" o "animal_type" lo convierte en un programa de auto-documentación de todos modos – mjv
solía usar 'tipe', pero siempre odié el como se veía ahora uso 'typ' – rbp
Hahah, eso es una broma @rbp, ¿verdad? ...¿derecho? – Bloke
Puede, pero estaría enmascarando el tipo de nombre incorporado. Entonces es mejor no hacer eso.
Puede usar cualquier palabra clave que no siga las reglas del identificador como un identificador. type
no es una palabra clave, pero su uso sombreará el type
incorporado.
Puedes, y está bien. A pesar de que el consejo de no sombrear los edificios internos es importante, se aplica con más fuerza si un identificador es común, ya que aumentará la confusión y la colisión. No parece tipo causará confusión aquí (pero lo sabrá más que nadie), y podría usar exactamente lo que tiene.
+1 por mencionar posibles confusiones. Creo que es un problema mucho más grande que el problema técnico de posiblemente sombrear un built-in: alguien que lea el código (incluso posiblemente la persona que lo escribió) podría esperar 'type' para referirse al built-in. Las posibilidades de sombrear accidentalmente el 'tipo' integrado parecen pequeñas en comparación: no se usa con frecuencia en el código real. –
Puede utilizar _type
para que
# Example
def foo(_type):
pass
Si utiliza type
, no se puede utilizar type()
en esa función
>>> #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
El nombre 'category' puede funcionar bien si realmente no tengo ganas de especificar el tipo de qué, como en 'foo_type'. – cloudrave