【发布时间】:2012-07-18 21:48:11
【问题描述】:
我有一本字典,名叫
descendDict
它包含 4 个键,它们是类对象,它们的值既是字母又是其他类对象。
现在我要做的是对字典进行排序,如果字典中出现的值是类对象或者是字母,则调用不同的操作:
for x in descendDict:
print x, descendDict[x]
for y in descendDict[x][0]:
if y != (classObject?):
#Action
for x in descendDict:
for z in descendDict[x][0]:
if z != (classObject?):
if y == z:
dist = 0
else:
dist = float(nodeDict[y]) + float(nodeDict[z])
在 if 语句中:
if... != (classObject?):
我正在尝试确定字典中的变量是否是类对象,但我只是不知道该怎么做。
这是其中一个条目:
<__main__.Node instance at 0xb6738> ([<__main__.Node instance at 0xb6710>, 'A', <__main__.Node instance at 0xb6760>], '0.1')
我正在对它的第一个键列表进行排序,但我试图确定列表中的值是类对象还是字母。
【问题讨论】:
-
if isinstance(d[x],MyClass): -
类对象是什么意思?类实例?你说的字母是什么意思?字符串?
-
如果您只有两种类型(“类对象”或“字母”),您可以测试它是否是“字母”,而不是恕我直言,假设字母是字符串,我认为这会更容易,你可以这样做:
isinstance(d[x], basestring). -
听起来您正在尝试创建自己的对象调度系统。停止这样做,并将其重构为仅使用 python 对象系统。
-
-1 用于误导性问题。您选择的答案不是处理类对象,而是类实例。
标签: python class object dictionary key