当前位置: 首页 > 面试题库 >

Python Chain getattr作为字符串

史钊
2023-03-14
问题内容
import amara
def chain_attribute_call(obj, attlist):
    """
    Allows to execute chain attribute calls
    """
    splitted_attrs = attlist.split(".")
    current_dom = obj
    for attr in splitted_attrs:
        current_dom = getattr(current_dom, attr)
    return current_dom

doc = amara.parse("sample.xml")
print chain_attribute_call(doc, "X.Y.Z")

为了更好地执行将对象作为字符串的链属性调用,我不得不开发上面的笨拙代码段。我很好奇是否会有更聪明/有效的解决方案。


问题答案:

只是从 Python
中使用的有用代码中reduce()
复制:

from functools import reduce
reduce(getattr, "X.Y.Z".split('.'), doc)


 类似资料:
  • 对于以下字符串,大小输出不正确。为什么会这样?我该如何解决? 我试着逐字符遍历str,这样我就可以把它读入向量

  • 问题内容: 我将数字保存到MySQL数据库。由于某些其他情况,我无法制作它们。 排序时将其作为字符而不是数字。 在数据库中我有 在我的页面上,它显示如下排序列表: 如何使它按数字升序显示? 问题答案: 如果可能,则无论如何仅存储数字,应将列的数据类型更改为数字。 如果您无法执行此操作,则将列值 强制转换 为 或 隐式地 使用例如数学运算来强制转换为数字 BTW MySQL将字符串从左到右转换。例子

  • 问题内容: 我是Java的新手,我不太确定如何将整数加幂作为字符串输出。我知道 实际上会计算出将双精度数提高到幂的值。但是,如果我想输出“ 2 ^ 6”作为输出(除了6作为上标而不是克拉),我该怎么做? 编辑:这是一个Android应用程序。我以整数形式传递给幂的整数,我想知道如何在手机的UI中将其转换为上标。 问题答案: 如果要将文本输出到GUI,则可以使用HTML格式和标记获取上标。否则,您将

  • 问题内容: 我试图理解为什么当用作Hashmap密钥时,将String和Stringbuilder / StringBuffer区别对待。让我通过以下插图使我的困惑更加清楚: 示例1,使用String: 上面的代码片段打印为“ 1”。 Example#2,使用StringBuilder(或StringBuffer): 上面的代码片段打印为“ 2”。 任何人都可以解释一下行为差异的原因。 问题答案:

  • 问题内容: 有什么方法可以将堆栈跟踪作为字符串获取? 查看调试包(https://golang.org/pkg/runtime/debug/),它只能打印到标准输出。 问题答案: 将格式化的堆栈跟踪放到提供的中。然后,您可以将其转换为字符串。 您还可以使用,分配足够大的缓冲区来容纳整个堆栈跟踪,并使用将该跟踪放入其中,并返回缓冲区()。

  • 代码如下: 运行时,这是错误消息: 错误:不匹配'运算符*'(操作数类型是'std::__cxx11::字符串{aka std::__cxx11::basic_string 如何修复此错误并使程序正确运行?

  • 问题内容: 我发现了这种奇怪的行为,并且为此感到震惊……有人有什么想法吗? Oracle 10g:我有两个不同的表,都具有名为“ TESTCOL ”的列,作为 Varchar2 (10) ,不能为空。 如果我对 table1 执行此查询,则会得到正确的结果: 请注意 ,我不是专门放置“ 1234” …不是错字,而是动态生成的查询,因此我将尽量不进行更改(至少在不久的将来不会更改)。 但是,如果我在