的Python:在Python
串联可变我有3个variable
的Python:在Python
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'
你可以使用[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))
试试这个:
for x in range(1, 4):
var = "obj.col"+str(x)+"_expense.text"
print(var)
将不起作用。 python不提供制造变量名称,至少不直接 – ShpielMeister
我希望这将帮助你:
for x in range(1,4):
col_text = 'col' + str(x) + '_expense'
print(getattr(obj,col_text).text)
在第二行中引用'col'。 – CristiFati
@CristiFati Done.Thank you ..! – Pradam
我不知道,但如果你想创建的变量和相应的值。这将取决于你想使用变量的地方。
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])
约'GETATTR阅读文档()' –
包括''像印刷( “obj.col” + STR(X)+ “_ expense.text”)' – Sanket
你也可以格式化内部.text' extention考虑使用'eval(“print(obj.col”+ str(x)+“_ expense.text)”)' –