将PHP-GTK应用程序转换为Python,我需要一个与PHP数组尽可能接近的字典。搜索和尝试后,我在一个myDict()类的子类字典,并实现了第一个重要的功能,就是有这个工作的能力:模拟Python数组中的PHP数组
dict1 = myDict()
dict1[foo1][foo2][foo3] = 1
这在myDict()类来实现。
class myDict(dict) :
def __missing__(self, arg) :
self.__setitem__(arg, myDict())
return self.__getitem__(arg)
现在出现了问题。 在PHP中,如果我尝试获取未定义的键,它将返回Null(在Python中相当于None)。 在标准的Python字典中,它会返回一个错误。 在我myDict字典,遗憾的是它返回一个空myDict
toto2 = myDict()
x = toto2["a"]["b"]
print x
打印显示:{} 的PHP相当于该代码将返回null,我需要上面返回无x的值的Python代码。
我还没有找到想法让它返回无。因为如果__missing__
返回None,那么第二行将会产生一个错误:NoneType是不可取代的。
如果任何人有一个想法来解决这个问题,我将不胜感激,有我在寻找一个解决方案来模拟这种“神奇”的PHP月
只是改变你的代码不依赖于这些功能? – delnan
*“在PHP中,如果我尝试获取未定义的键,它将返回Null”* ...并且它还会引发通知。你不会,永远只会访问一个未定义的索引,并依赖它“返回null”。糟糕的程序员。坏。我认为你应该习惯于这些东西是如何在Python中完成的,而不是将不良的PHP习惯结束。毕竟,人们在没有这个功能的情况下用Python进行编程,他们明显地完成了任务。 – deceze
请,请不要尝试这个,入站谷歌。前面有龙。 – DeaconDesperado