Python- Lingkup Variabel

def Interface():
     Number = input("Enter number: ")

Interface()
print(Number)

Ini adalah cuplikan kecil kode saya yang disederhanakan yang menghasilkan:

Traceback (most recent call last):
  File "C:/Users/Jack/Documents/Python/NumberToText.py", line 78, in 
    print(Number)
NameError: name 'Number' is not defined

Saya mengerti ini karena variabel didefinisikan dalam suatu fungsi.

Apa yang dapat saya lakukan untuk memperbaikinya?


person Oliver Murfett    schedule 01.10.2015    source sumber
comment
Sebenarnya saya sudah melihat pertanyaan seperti ini sekitar tiga kali. Dan kebanyakan dari mereka mendapat banyak suara negatif. Tapi yang ini mendapat tiga suara positif dan tidak ada suara negatif sekarang. Bisakah seseorang memberi tahu saya alasannya?   -  person Casimir Crystal    schedule 01.10.2015
comment
Mungkin karena caraku menanyakannya. @KevinGuan   -  person Oliver Murfett    schedule 01.10.2015


Jawaban (2)


Itu tergantung pada apa yang ingin Anda lakukan.

Mungkin membuat fungsi Interface mengembalikan Number akan menjadi solusi termudah

def interface():
     number = input("Enter number: ")
     return number

print(interface())

Silakan lihat QA SO ini tentang topik aturan cakupan di python

Catatan: seperti yang Anda lihat, saya telah mengonversi nama fungsi dan variabel menjadi huruf kecil, mengikuti PEP-8

person Pynchia    schedule 01.10.2015
comment
Tentu saja Anda akan menghilangkan tanda kurung yang tidak diperlukan: return number. return bukan fungsi. - person Matthias; 01.10.2015

Karena variabel Number hanya milik fungsi Interface(). Anda dapat menggunakan return seperti ini:

def Interface():
     number = int(input("Enter number: "))
     # remember use int() function if you wish user enter a number

     return(number)

print(Interface())

atau gunakan global seperti ini:

def Interface():
     global number
     number = input("Enter number: ")
     # remember use int() function if you wish user enter a number

Interface()
print(number)

Dan hanya gunakan global ketika Anda membutuhkan variabel yang dapat digunakan di mana saja atau Anda memerlukan fungsi untuk mengembalikan hal-hal lain. Karena memodifikasi global akan merusak modularitas.

Berikut adalah dokumen tentang apa itu variabel global.

person Casimir Crystal    schedule 01.10.2015