если я сделаю это, все будет в порядке:
def a():
b = [1,2,3]
def d():
print b
d()
a()
, но у меня есть много методов, нуждающихся в функции d , поэтому я должен определить ее вне функции a , но он показывает ошибку:
def d():
print b
def a():
b = [1,2,3]
d()
a()
error:
File "c.py", line 21, in <module>
a()
File "c.py", line 19, in a
d()
File "c.py", line 16, in d
print b
NameError: global name 'b' is not defined
, поэтому у меня много разных переменных, например b в разных функциях, поэтому я не хочуОтправьте переменную следующим образом:
def d(b1,b2,b3,b4,b5):
print b1,b2,b3,b4,b5
, что не очень просто, поэтому я делаю это так:
d = \
'''
def d():\n
print b
'''
def a():
b = [1,2,3]
c = eval(d)
c()
a()
, но также выдает ошибку:
File "c.py", line 16, in <module>
a()
File "c.py", line 13, in a
c = eval(d)
File "<string>", line 2
def d():
^
так что я могу сделать,
спасибо