işlevinin yerel kapsamı içinde nasıl çalıştırabilirim. Ancak, her zaman küresel kapsamda değerlendirir.Python: eval() işlevini yerel olarak bir işlevin yerel kapsamındaki eval() işlevini kullanmaya çalıştığım
1- Bu kod çalışır:
var1 = 1
var2 = 2
var3 = 3
myDict = dict((name, eval(name)) for name in ["var1",
"var2",
"var3"])
print(myDict["var1"])
2- 2.
def test2():
lvar1 = 1
lvar2 = 2
lvar3 = 3
myDict = dict((name, eval(name), locals()) for name in ["lvar1",
"lvar2",
"lvar3"])
print(myDict["lvar1"])
olarak
lvar1
def test1():
lvar1 = 1
lvar2 = 2
lvar3 = 3
myDict = dict((name, eval(name)) for name in ["lvar1",
"lvar2",
"lvar3"])
print(myDict["lvar1"])
3- aynı sonuç için NameError
Atar
Kendi örneklerine sahip
Belki de daha önemli bir soru şudur: [gerçekten değerlendirmeye ihtiyacınız var mı?] (Https://stackoverflow.com/questions/1832940/is-using-eval-in-python-a-bad-practice) – Joost
@cjahangir Bu bir ¯ \\ _ (ツ) _/¯ öneriydi – Adib
@Adib, bilgisayarımda çalışıyor – cjahangir