a="string"
b="replace("str","")"
c=a.b
Expected output should be : ing
其弹出错误,指出str不是属性。
如何调用此功能?但是只能使用上述格式。请告诉我。仅使用字符串
答案 0 :(得分:2)
您将b
更改为:
b = 'replace("str","")'
然后您可以执行以下操作:
c = eval(eval('"a."') + eval('b'))
答案 1 :(得分:0)
def func(char, my_string):
result = my_string.replace(char, "")
return result
final_string = func("str", "string")
print(final_string)
结果: ing
我不确定是否可以仅使用“字符串”来做您想做的事
答案 2 :(得分:0)
请我知道。但是至少它不如)b+'.'+a(lave
糟糕。向后读。
这使用ast
模块将"replace('l','')"
解析为'replace', ['l', '']
。这仅适用于带有常量字符串参数的函数调用。在此示例中,确实必须用单引号替换双引号,但它也可以在'replace("l","")'
上使用。
import ast
loan = 'olalt'
a="loan"
b="replace('l','')"
p = ast.parse(b).body[0].value
name = p.func.id
args = [arg.s for arg in p.args]
c=getattr(globals()[a], name)(*args)
c
答案 3 :(得分:-1)
Replace是python中的内置函数。不要将内置函数用双引号引起来,而是使用以下几行
a = "string"
b = a.replace("str","")
print(b)
b的输出是
ing