相关疑难解决方法(0)

如何返回属性的默认值?

我有一个myobject可能会返回的对象None.如果返回None,则不会返回属性id:

a = myobject.id
Run Code Online (Sandbox Code Playgroud)

所以当myobject是None,上面的结果导致AttributeError:

AttributeError: 'NoneType' object has no attribute 'id'
Run Code Online (Sandbox Code Playgroud)

如果myobject是None,那么我想a等于None.如何在一行语句中避免此异常,例如:

a = default(myobject.id, None)
Run Code Online (Sandbox Code Playgroud)

python reflection attributes default void

33
推荐指数
3
解决办法
3万
查看次数

使用点符号字符串"abcde"检查嵌套字典会自动创建缺少的级别

这个让我大吃一惊.鉴于以下字典:

    d = {"a":{"b":{"c":"winning!"}}}
Run Code Online (Sandbox Code Playgroud)

我有这个字符串(来自外部来源,我不能改变这个比喻).

    k = "a.b.c"
Run Code Online (Sandbox Code Playgroud)

我需要确定字典是否有密钥 'c',所以如果没有,我可以添加它.

这可以游戏地检索点符号值:

    reduce(dict.get, key.split("."), d)
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何'减少'has_key检查或类似的东西.

我的最终问题是:给定"abcde",我需要创建字典中所需的所有元素,但如果它们已经存在则不要踩它们.如果有人知道做出这一切的真正方式,那么你将成为我的英雄.

python dictionary nested defaultdict

12
推荐指数
2
解决办法
5324
查看次数