python:python中的连接变量

2024-05-19 03:38:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3variable

print(obj.col1_expense.text) #test1
print(obj.col2_expense.text) #test2
print(obj.col3_expense.text) #test3

如何动态打印? 现在我这样努力

    for x in range(1, 4):
        print("obj.col"+str(x)+"_expense".text)

但它会产生错误

AttributeError: 'str' object has no attribute 'text'

Tags: textinobjfor动态rangecol2col3
3条回答

我希望这对你有帮助:

for x in range(1,4):
    col_text = 'col' + str(x) + '_expense'
    print(getattr(obj,col_text).text)

您可以使用[Python]: getattr(object, name[, default])

for x in range(1, 4):
    print(getattr(obj, "col{}_expense".format(x)).text)

或者,为了确保在弄乱索引的情况下不会得到AttributeError,可以将print替换为此表单(不太容易阅读):

print(getattr(getattr(obj, "col{}_expense".format(x), None), "text", None))

我不确定,但如果你想创建变量和相应的值。 这将取决于您想在哪里使用变量。

import pandas as pd
var = []
for x in range(1, 4):
    var.append("obj.col%s_expense.text" %(x))
print(var)
print(var[0])
print(var[1])

相关问题 更多 >

    热门问题