的Python:在Python

的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' 
+4

约'GETATTR阅读文档()' –

+0

包括''像印刷( “obj.col” + STR(X)+ “_ expense.text”)' – Sanket

+2

你也可以格式化内部.text' extention考虑使用'eval(“print(obj.col”+ str(x)+“_ expense.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) 
+1

将不起作用。 python不提供制造变量名称,至少不直接 – ShpielMeister

我希望这将帮助你:

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

在第二行中引用'col'。 – CristiFati

+0

@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])