当前位置:  开发笔记 > 编程语言 > 正文

在运行时通常访问任意对象上的属性

如何解决《在运行时通常访问任意对象上的属性》经验,为你挑选了0个好方法。

假设我们有一个未知类型的任意对象,我们希望访问与此对象关联的同等任意属性,查询为字符串名称.我正在寻找获得这个价值的最佳实践方法.

在伪代码/ Python中,我正在考虑的当前策略是这样的:

def access_attribute(obj, attr):
    if type(obj) == types.FunctionType:
        return access_attribute(obj(), attr)
    elif type(obj) == types.DictType:
        return obj.get(attr)
    # ... etc.

要考虑的几件事:

如果对象上不存在该属性会发生什么?我可以提出例外.

该属性可能是深层嵌套的.

我认为这是编程语言和DSL解释器必须解决的问题,但我不知道标准/普遍接受的最佳实践.

已经提出了将自定义存储的DSL /代码eval与对象一起传递到运行时的想法,但我想暂时避免使用这种特殊的解决方案并且更喜欢Pythonic.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有