在Python字典中模拟PHP数组
将PHP-GTK应用程序转换为Python,我需要一个与PHP数组尽可能接近的字典。在搜索和尝试之后,我在一个myDict()类中对dict进行了子类化,并实现了第一个重要功能,即能够完成这项工作:在Python字典中模拟PHP数组,php,python,Php,Python,将PHP-GTK应用程序转换为Python,我需要一个与PHP数组尽可能接近的字典。在搜索和尝试之后,我在一个myDict()类中对dict进行了子类化,并实现了第一个重要功能,即能够完成这项工作: dict1 = myDict() dict1[foo1][foo2][foo3] = 1 这是在myDict()类中实现的 现在有一个问题。 在PHP中,如果我尝试获取未定义的键,它将返回Null(相当于Python中的None)。 在标准Python dict中,它将返回一个错误。 不幸的是,在
dict1 = myDict()
dict1[foo1][foo2][foo3] = 1
这是在myDict()类中实现的
现在有一个问题。
在PHP中,如果我尝试获取未定义的键,它将返回Null(相当于Python中的None)。
在标准Python dict中,它将返回一个错误。
不幸的是,在myDict字典中,它返回一个空的myDict
toto2 = myDict()
x = toto2["a"]["b"]
print x
打印显示:{}
这段代码的PHP等价物将返回Null,我需要上面的Python代码将None作为x的值返回
我还没有找到一个办法让它一无所获。因为如果\uuuuu missing\uuuuu
返回None,那么第二行将提示一个错误:NoneType是unsubscribable
如果有人有办法解决这个问题,我将不胜感激,几个月来我一直在寻找一个解决方案来模仿PHP的这种“魔力”假设我们可以使
myDict
在密钥不在时返回None
myDict
。然后考虑<代码> toto2[(a)] [“b”] < /代码> ./p>
Python首先计算toto2[“a”]。如果“a”
不在tototo2
中,则tototo2[“a”]
返回无。下一个Python将计算None[“b”]
并引发TypeError
因此,在Python中无法实现所需的行为。如何更改代码,使其不依赖于这些功能?“在PHP中,如果我尝试获取未定义的键,它将返回Null”…并且还会抛出一个通知。您永远不会访问未定义的索引并依赖它“返回
null
”。糟糕的程序员。糟糕。我认为您应该习惯这些事情是如何在Python中完成的,而不是移植坏的PHP习惯。毕竟,人们在用Python编程时没有这个功能,他们显然能完成任务。请,请,请永远不要尝试这个,谷歌人。前面有龙。
toto2 = myDict()
x = toto2["a"]["b"]
print x