Python exec()在我的定义中不起作用
我定义了如下表函数:Python exec()在我的定义中不起作用,python,exec,Python,Exec,我定义了如下表函数: import numpy as np tabulator=" " def StringJoin(sez): združen_str="" for i in sez: združen_str+=i return(združen_str) def Table(arg): črsp=[] #črke spremenljivk forstringi=[] števc
import numpy as np
tabulator=" "
def StringJoin(sez):
združen_str=""
for i in sez:
združen_str+=i
return(združen_str)
def Table(arg):
črsp=[] #črke spremenljivk
forstringi=[]
števc=0
#############################################
definicija_str=arg[0][1:-1]
for i in arg[1:]:
if (type(i) is list):
črsp+=[i[0]]
forstringi+=["for "+i[0]+" in np.arange("+StringJoin([str(i2)+"," for i2 in i[1:]])[:-1]+")]\n" ]
else:
forstringi+=["for AS"+str(števc)+" in np.arange("+str(i)+")]\n" ] #Avtomatska Spremenljivka
števc+=1
črsp2=""
for i in črsp:
črsp2+=i+","
črsp3=črsp2[:-1]
črsp3
forstringi2=StringJoin(forstringi)
#############################################
združen_str=StringJoin([
"def fzatable(",
črsp3,
"""
):
"""[1:-1],tabulator,
definicija_str.replace("\n", "\n"+tabulator),
"\nTable_output=np.array(",
(len(arg)-1)*"[",
"""
fzatable(
"""[1:-1],črsp3,")\n",
forstringi2,
"""
)
"""[1:-1]
])
#############################################
# print(združen_str)
exec(združen_str)
return(Table_output)
在另一篇文章()中,我描述了这个函数应该做什么
因此,如果我输入以下内容
Table(["""
if (x**2+y**2<1):
return(1)
else:
return(0)
""",
["x",-1,1.1,.1],
["y",-1,1.1,.1],
])
表([“”“
如果(x**2+y**2