Me enfrento a un problema de pitón. Quiero usar type()
para averiguar qué tipo de variable estoy usando. El código es similar a este:¿Por qué `type (myField)` devuelve `<type 'instance'>` y no `<type 'Field'>`?
class Foo():
array=[ myField(23),myField(42),myField("foo"), myField("bar")]
def returnArr(self):
for i in self.array:
print type(i)
if __name__ == "__main__":
a=Foo()
a.returnArr()
Editar: myField() es una clase I definida.
Cuando pido el tipo() me sale: <type 'instance'>
Ahora bien, según 1 esto se debe al hecho de que yo uso un elemento de clase y pido type()
en eso. Ahora lo que necesito es: <type 'int'>
para el ejemplo: myField(42)
y <type 'str'>
para myField(foo)
. ¿Cómo podría lograr eso?
EDIT:
def __init__(self, name, default, fmt="H"):
self.name = name
if fmt[0] in "@=<>!":
self.fmt = fmt
else:
self.fmt = "!"+fmt
self.default = self.any2i(None,default)
self.sz = struct.calcsize(self.fmt)
self.owners = []
El código se toma de scapy y trato de adaptarlo.
'tipo()' de qué? su pregunta es confusa y ambigua. –
¿Qué es 'myField'? – interjay
Hacer esto debería funcionar, pero debe incluir más detalles. ¿Qué son 'myField' y' foo' y 'bar'? ¿Dónde están inicializados? Simplemente llenar una lista con enteros y cadenas y luego llamar a 'type' en sus elementos debería funcionar. –