global - in 87
حسین عبدالوند
15 شهريور ۱۴۰۲
از دستور گلوبال ، باید داخل فالنکشن استفاده کرد؟
چون بیرون تابع استفادهع میکنم ارور میده، (یعنی دقیقا باید قبل از استفاده از y بیاد؟
# global y ---> show error
def test():
x = 200
def printxy():
global y
y= 100
print('the first' , y)
print('firt' , x)
printxy()
print('its another', y)
print ("anopther" , x)
# global y ---> show error
test()
print(y)
198
3 پاسخ
- دانیال آذرپناه16 شهريور ۱۴۰۲
سلام و درود. بیرون از تابع که لازم نیست چون خودش گلوبال تعریف میشه دیگه میتونید تو هر اسکوپی استفاده کنید از متغیر
- حسین عبدالوند26 شهريور ۱۴۰۲
دوباره من توی گلوبال گیر کردم
چرا اینجا باز ارور میده؟
البته بدون گلوبال و در تابع rapper بصورت کامنت کد رو درست کردم، ولی اینکه چرا گلوبال newlist رو قابل شناسایی در rapper نمیکنه برام عجیبه
error:
UnboundLocalError: local variable 'newlist' referenced before assignment
def upper_decorator(func): # newlist = [] ----> error beacus cant read in next func # newlist = [] ----> must be after global global newlist newlist = [] def rapper(*args,**kwargs): #newlist = [] for i in args: newlist.append(i.upper()) # args = args.upper() newlist = tuple(newlist) y= func(newlist) return y return rapper @upper_decorator def hello(name): return (f'hello {name}') x=input('whats your name? ') x = hello(x) print(x) - دانیال آذرپناه27 شهريور ۱۴۰۲
سلام خسته نباشید.
باید تو فانکشن rapper هم گلوبال تعریف کنید تا دسترسی داشته باشید به لیست
