Akses variabel di luar jika pernyataan python

Apakah variabel yang dideklarasikan dalam pernyataan if_ dapat diakses langsung di luar pernyataan if?

Menjawab

Tidak, variabel yang dideklarasikan di dalam pernyataan if_ tidak akan dapat diakses secara langsung di luar pernyataan if karena pernyataan if memiliki cakupannya sendiri. Bagaimana Anda bisa menetapkan nilai berdasarkan kondisional?
Ini tidak bekerja

    	let capacity = 50;
    	let numberOfPeople = 80;
    	if(numberOfPeople > capacity) {
    		let numberOfExtraPeople = numberOfPeople - capacity;
    	}
    	else {
    		let numberOfExtraPeople = 0;
    	}
    	// Prints undefined because numberOfExtraPeople is not in this scope
    	console.log(numberOfExtraPeople);

Namun, ini berhasil

    	let capacity = 50;
    	let numberOfPeople = 80;
    	let numberOfExtraPeople;
    	if(numberOfPeople > capacity) {
    		numberOfExtraPeople = numberOfPeople - capacity;
    	}
    	else {
    		numberOfExtraPeople = 0;
    	}
    	// Prints 30 because numberOfExtraPeople was declared in the same scope as the console.log
    	console.log(numberOfExtraPeople);
_

Di Python, kita bisa mendeklarasikan variabel dalam tiga lingkup yang berbeda. ruang lingkup lokal, global, dan ruang lingkup nonlokal

Cakupan variabel menentukan wilayah tempat kita dapat mengakses variabel. Sebagai contoh,

def add_numbers():
    sum = 5 + 4

Di sini, variabel sum dibuat di dalam fungsi, sehingga hanya dapat diakses di dalamnya (lingkup lokal). Jenis variabel ini disebut variabel lokal

Berdasarkan cakupannya, kita dapat mengklasifikasikan variabel Python menjadi tiga jenis

  1. Variabel Lokal
  2. Variabel Global
  3. Variabel Nonlokal

Variabel Lokal Python

Saat kita mendeklarasikan variabel di dalam suatu fungsi, variabel ini akan memiliki cakupan lokal (di dalam fungsi). Kami tidak dapat mengaksesnya di luar fungsi

Jenis variabel ini disebut variabel lokal. Sebagai contoh,

def greet():

    # local variable
    message = 'Hello'
    
    print('Local', message)

greet()

# try to access message variable 
# outside greet() function
print(message)

Keluaran

Local Hello
NameError: name 'message' is not defined
_

Di sini, variabel pesan bersifat lokal untuk fungsi greet(), sehingga hanya dapat diakses di dalam fungsi

Itu sebabnya kami mendapatkan kesalahan saat kami mencoba mengaksesnya di luar fungsi greet()

Untuk memperbaiki masalah ini, kita dapat membuat variabel bernama pesan menjadi global


Variabel Global Python

Dalam Python, variabel yang dideklarasikan di luar fungsi atau dalam lingkup global dikenal sebagai variabel global. Ini berarti variabel global dapat diakses di dalam atau di luar fungsi

Mari kita lihat contoh bagaimana variabel global dibuat dengan Python

# declare global variable
message = 'Hello'

def greet():
    # declare local variable
    print('Local', message)

greet()
print('Global', message)

Keluaran

Local Hello
Global Hello
_

Kali ini kita dapat mengakses variabel pesan dari luar fungsi greet(). Ini karena kami telah membuat variabel pesan sebagai variabel global

# declare global variable
message = 'Hello'

Sekarang, pesan akan dapat diakses dari semua cakupan (wilayah) program


Variabel Nonlokal Python

Dalam Python, variabel nonlokal digunakan dalam fungsi bersarang yang cakupan lokalnya tidak ditentukan. Ini berarti bahwa variabel tidak dapat berada dalam lingkup lokal maupun global

Kami menggunakan kata kunci

def greet():

    # local variable
    message = 'Hello'
    
    print('Local', message)

greet()

# try to access message variable 
# outside greet() function
print(message)
_1 untuk membuat variabel nonlokal. Sebagai contoh,

# outside function 
def outer():
    message = 'local'

    # nested function  
    def inner():

        # declare nonlocal variable
        nonlocal message

        message = 'nonlocal'
        print("inner:", message)

    inner()
    print("outer:", message)

outer()
_

Keluaran

inner: nonlocal
outer: nonlocal

Dalam contoh di atas, ada fungsi

def greet():

    # local variable
    message = 'Hello'
    
    print('Local', message)

greet()

# try to access message variable 
# outside greet() function
print(message)
2 bersarang. Kami telah menggunakan kata kunci
def greet():

    # local variable
    message = 'Hello'
    
    print('Local', message)

greet()

# try to access message variable 
# outside greet() function
print(message)
_1 untuk membuat variabel nonlokal

Bagaimana Anda menggunakan variabel di luar pernyataan if?

Jika Anda mendefinisikan variabel di dalam pernyataan if, maka itu hanya akan terlihat di dalam lingkup pernyataan if, yang mencakup pernyataan itu sendiri ditambah pernyataan anak. Anda harus mendefinisikan variabel di luar cakupan dan kemudian memperbarui nilainya di dalam pernyataan if .

Bagaimana Anda mengakses variabel dari luar fungsi di Python?

Menggunakan pernyataan global . Kami melakukan ini menggunakan pernyataan global. Tidak mungkin menetapkan nilai ke variabel yang ditentukan di luar fungsi tanpa pernyataan global.

Bagaimana Anda mengakses variabel di luar kelas dengan Python?

Jika Anda ingin menggunakan variabel itu bahkan di luar kelas, Anda harus mendeklarasikan variabel itu sebagai global . Kemudian variabel tersebut dapat diakses menggunakan namanya di dalam dan di luar kelas dan tidak menggunakan instance dari kelas tersebut.

Bisakah Anda menggunakan variabel di luar fungsi?

Dalam Python, variabel yang dideklarasikan di luar fungsi atau dalam lingkup global dikenal sebagai variabel global. Ini berarti bahwa variabel global dapat diakses di dalam atau di luar fungsi .