En un módulo, estoy tratando de reunir entradas_de_cruces y unir cada una, con un espacio. Entonces, quiero imprimir el resultado de un solo raw_input:
def human_infoz():
name = raw_input("Enter human name> ")
address = raw_input("Human Address> ")
phone = raw_input("Human Phone Number> ")
email = raw_input("Human Email> ")
listinfo = ["", name, address, phone, email, ""]
return ' '.join(listinfo)
go = human_infoz()
print go.name
Raw_inputs funcionan bien, pero cuando el script alcanza namez, se tira un pedo.
AttributeError: 'str' object has no attribute 'name'
¿Alguna idea?
2 respuestas
Puede poner un print name
en su código, hacer un class
donde name
es un attribute
o simplemente devolver el nombre y el nombre asignado al segundo argumento de la siguiente manera:
def human_infoz():
name = raw_input("Enter human name> ")
address = raw_input("Human Address> ")
phone = raw_input("Human Phone Number> ")
email = raw_input("Human Email> ")
listinfo = ["", name, address, phone, email, ""]
return ' '.join(listinfo),name
go = human_infoz()
namez = go[1]
print namez
Si desea todos los detalles, simplemente devuelva la lista:
def human_infoz():
name = raw_input("Enter human name> ")
address = raw_input("Human Address> ")
phone = raw_input("Human Phone Number> ")
email = raw_input("Human Email> ")
listinfo = [name, address, phone, email]
return listinfo
go = human_infoz()
namez,add,phone,email = go
Imprime todos los detalles:
print namez,add,phone,email
Para acceder como está intentando en su pregunta, necesitaría un class
Este es un ejemplo muy básico:
class Details():
def __init__(self):
self.name = raw_input("Enter human name> ")
self.address = raw_input("Human Address> ")
self.phone = raw_input("Human Phone Number> ")
self.email = raw_input("Human Email> ")
self.info = [self.name, self.address, self.phone, self.email]
go = Details() # create instance
# print details by accessing the instance attributes
print go.name,go.address,go.email,go.phone,go.info
Si desea acceder a estas variables por nombre, ¿por qué no usar un diccionario?
def human_infoz():
name = raw_input("Enter human name> ")
address = raw_input("Human Address> ")
phone = raw_input("Human Phone Number> ")
email = raw_input("Human Email> ")
listinfo = {
"name": name,
"address": address,
"phone": phone,
"email": email
}
return listinfo
go = human_infoz()
print go["name"]
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.