def getbasicinfo(usernamelist):
users = {}
for username in usernamelist:
users[username] = user()
return users
getbasicinfo(["asfd", "asdfsd"])
print(users)
Doğrudan konuya giriyorum user isimli bir classım var getbasicinfo() fonksiyonu ile users adında bir dict oluşturup key’i username olan value değeri olarak bir obje oluşturuyorum.
Fakat bu users sözlüğünü return ile kullanınca şu hatayı alıyorum:
Traceback (most recent call last):
File "project.py", line 22, in <module>
print(users)
NameError: name 'users' is not defined
Bu users sözlüğünü nasıl fonksiyonun dışına çıkarabilirim ?
users sözlüğü aslında fonksiyondan geri dönüyor. Ama sadece local alanda tanımlı olduğu için global alanda users ismini kullanamıyorsunuz. users'ı global olarak tanımlarsanız bunun üstesinden gelirsiniz. Ancak bu başka bir konu.
Fonksiyon bir değer döndürdüğü için, ya fonksiyonu çağırırken print fonksiyonunun içinde print(getbasicinfo(["asfd", "asdfsd"]) şeklinde çağıracaksınız; ya da bu fonksiyondan dönen değeri bir değişkenin değeri haline getirip, print fonksiyonunun içine bu değişkeni yazacaksınız.
@throwaway1, fonksiyon değer döndürecek ise, döndürülecek değeri global yapmanın ne anlamı var? Veya değer global alanda geçerli olacaksa o zaman değer döndürmenin ne anlamı var?
Bu sınıfı siz yazdıysanız baya konu atlamışsınız, fonksiyondan dönen değerin nasıl kullanılacağını öğrenmeden nesne tabanlı programlama öğrenme yanlış.
Teşekür ederim global çözümü benim de aklıma gelmişti fakat global olarak tanımlamak istemiyordum değişken atama kısmını gözden kaçırmışım teşekkür ederim ve bunun için konu açtığım için özür dilerim.