【发布时间】:2011-10-03 18:09:33
【问题描述】:
我遇到了一个 python 问题。我想使用type() 找出我正在使用的变量类型。代码与此类似:
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()
编辑:myField() 是我定义的一个类。
当我请求 type() 时,我得到:<type 'instance'> 现在根据 1,这是因为我使用了一个类元素并在上面请求 type()。现在我需要的是:<type 'int'> 例如:myField(42) 和 <type 'str'> 为myField(foo)。我怎样才能做到这一点?
编辑:
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 = []
代码取自 scapy,我尝试修改它。
【问题讨论】:
-
type()是什么?您的问题既不清楚又模棱两可。 -
这样做应该可行,但您需要包含更多细节。
myField和foo和bar是什么?它们在哪里初始化?只需用整数和字符串填充一个列表,然后在其元素上调用type即可。 -
请告诉我们
myField是如何定义的。你能否解释一下为什么myField(foo)中的foo应该是一个字符串?你真的是说"foo"吗? -
@Mr. Shickadance,你是对的,它应该有效,而且确实有效。我在 REPL 中使用我自己定义的类
myField、foo和bar对此进行了测试,它给出了预期的结果。史蒂夫没有告诉我们一些相关的事情。 -
对于不清楚的帖子,我编辑了帖子。我希望现在应该更清楚了。
标签: python