Memahami skop pemboleh ubah global dalam python

Understand Global Variables Scope Python



Dua jenis pemboleh ubah dapat ditentukan dalam kebanyakan bahasa pengaturcaraan. Ini adalah pemboleh ubah global dan pemboleh ubah tempatan. Pemboleh ubah yang ditentukan di luar fungsi disebut pemboleh ubah global. Pemboleh ubah ini boleh diakses dan diubah dari mana sahaja dalam skrip. Pemboleh ubah yang dinyatakan di dalam fungsi disebut pemboleh ubah tempatan. Tetapi jika nama pemboleh ubah yang sama wujud seperti pemboleh ubah global dan tempatan maka pemboleh ubah di dalam fungsi akan mendapat keutamaan dan nilai pemboleh ubah global akan diabaikan. Skop pemboleh ubah global dalam skrip python ditunjukkan dalam tutorial ini menggunakan pelbagai contoh.

Contoh-1: Penggunaan mudah pemboleh ubah global

Contoh berikut menunjukkan penggunaan mudah pemboleh ubah global di dalam fungsi dan di luar fungsi. Di sini, pemboleh ubah global bernama teks digunakan untuk menetapkan data rentetan. Fungsi khas yang dinamakan printMessage () ditakrifkan untuk mencetak nilai pemboleh ubah global. Nilai bagi teks pemboleh ubah dicetak di dalam fungsi dan di luar fungsi setelah menukar nilai.







#! / usr / bin / env python3

# Tentukan pemboleh ubah global
teks= 'Selamat Datang ke LinuxHint'

# Tentukan fungsi
defprintMessage():

# Cetak pemboleh ubah global dari fungsi
mencetak('Pembolehubah global fungsi dalam: n',teks)

# Panggil fungsi
printMessage()

# Ubah nilai pemboleh ubah global
teks= 'Belajar Pengaturcaraan Python'

# Cetak nilai semasa pemboleh ubah global
mencetak('Fungsi luar pemboleh ubah global: n',teks)

Pengeluaran:



Output berikut akan muncul setelah menjalankan skrip. Ia mencetak nilai, ' Selamat Datang di LinuxHint ’ yang diberikan kepada pemboleh ubah sebelum memanggil fungsi. Seterusnya, ia mencetak nilai, ‘Belajar Pengaturcaraan Python’ setelah menukar nilai pemboleh ubah.







Contoh-2: Penggunaan pemboleh ubah global dan tempatan dengan nama yang sama

Sekiranya anda ingin menyatakan nama pemboleh ubah di dalam fungsi yang sudah dinyatakan sebagai pemboleh ubah global sebelum di python dan ingin menggunakan pemboleh ubah maka ia akan menganggap pemboleh ubah sebagai pemboleh ubah tempatan dan menghasilkan ralat. Skrip berikut akan menunjukkan kesalahan. Di sini, teks pemboleh ubah ditakrifkan sebagai pemboleh ubah global dan tempatan.

#! / usr / bin / env python3

# Tentukan pemboleh ubah global
teks= 'Saya suka Python'

# Tentukan fungsi
defprintMessage():
mencetak(teks)

teks= 'Saya suka PHP'

# Panggil fungsi
printMessage()

Pengeluaran:



Output berikut akan muncul setelah menjalankan skrip.

Untuk mengelakkan situasi di atas dan jika anda ingin menyatakan pemboleh ubah tempatan dengan nama yang sama dengan pemboleh ubah global maka anda harus menetapkan pemboleh ubah tempatan di dalam fungsi terlebih dahulu. Skrip berikut menunjukkan bahawa perubahan dalam pemboleh ubah tempatan tidak membuat perubahan pada pemboleh ubah global. teks pemboleh ubah dicetak di dalam dan di luar fungsi di sini.

#! / usr / bin / env python3

# Tentukan pemboleh ubah global
teks= 'Saya suka Python'

# Tentukan fungsi
defprintMessage():
# Degine nilai tempatan
teks= 'Saya suka PHP'
# Cetak pemboleh ubah tempatan, teks
mencetak('Nilai' teks 'fungsi dalam: n',teks)

# Panggil fungsi
printMessage()

# Cetak pemboleh ubah global, teks
mencetak('Nilai' teks 'fungsi luar: n',teks)

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip.

Contoh-3: Penggunaan pemboleh ubah global di dalam fungsi

Contoh sebelumnya menunjukkan bahawa pemboleh ubah global tidak dapat diakses di dalam fungsi. Anda boleh menggunakan global kata kunci untuk mengakses pemboleh ubah global dari sebarang fungsi. Dalam skrip berikut, cal_percentage () fungsi didefinisikan untuk mengira peratusan sebarang nombor di mana kedua-dua pemboleh ubah global dan tempatan digunakan. Di sini, pada satu adalah pemboleh ubah global, dan perVal adalah pemboleh ubah tempatan. global kata kunci digunakan di sini untuk mengenal pasti pemboleh ubah global di dalam fungsi dan nilai pemboleh ubah global diubah di dalam fungsi.

#! / usr / bin / env python3

# Ambil nilai integer
pada satu= int(input('Masukkan nombor:'))

# Tentukan fungsi
defcal_percentage():
# Kenali pemboleh ubah global menggunakan kata kunci global
globalpada satu

# Ambil nilai integer sebagai peratusan
perVal= int(input('Masukkan nilai peratusan:'))

# Hitung nilai peratusan
hasil= terapung((adakah * perVal)/100)

# Cetak hasil berformat
mencetak('% d peratusan% d =% f'%(perVal,pada satu,hasil))

# Ubah nilai pemboleh ubah global
pada satu= 500

# Cetak nilai pemboleh ubah global sebelum memanggil fungsi
mencetak(' nNilai num =% d '%pada satu)

# Panggil fungsi
cal_percentage()

# Cetak nilai pemboleh ubah global setelah memanggil fungsi
mencetak(' nNilai num =% d '%pada satu)

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip. Di sini, 10% daripada 350 dikira dan dicetak.

Contoh-4: Penggunaan pemboleh ubah global dari skrip lain

Contoh berikut menunjukkan bahawa bagaimana pemboleh ubah global yang dinyatakan dalam satu skrip dapat digunakan dalam skrip yang lain. Katakan, nama failnya adalah global6.py yang akan menggunakan pemboleh ubah global yang ditentukan dalam fail bernama global5.py . Tiga pemboleh ubah global dinyatakan dalam global5.py . Anda mesti mengimport global5 untuk menggunakan pemboleh ubah dalam skrip lain. Skrip dari global6.py akan mengira gaji tiga jenis pekerja berdasarkan nilai input dan pemboleh ubah global.

#! / usr / bin / env python3
# ini adalah fail global5.py

# Struktur gaji asas syarikat
Asas= 5000
Perubatan= 500
Pengangkutan= 500 #! / usr / bin / env python3
# ini adalah fail global6.py

# Import pemboleh ubah global dari global5.py
mengimportglobal5

# Ambil nama pekerja
nama= input('Masukkan nama pekerja:')
# Ambil nama jawatan
jawatan= input('Masukkan jawatan:')

# Mulakan pemboleh ubah ralat
kesilapan= Salah

# Periksa pos dan tetapkan gaji pokok berdasarkan pos
sekiranya(jawatan.bahagian atas() == 'Ketua Pegawai Eksekutif'):
asas=global5.Asas+(global5.Asas*0.4)
elif(jawatan.bahagian atas() == 'PENGURUS'):
asas=global5.Asas+(global5.Asas*0.25)
elif(jawatan.bahagian atas() == 'AKAUNTAN'):
asas=global5.Asas+(global5.Asas*0.15)
yang lain:
# Tetapkan ralat menjadi benar jika nilai catatan tidak dijumpai
kesilapan= Betul

# Cetak gaji jika kesalahan adalah flase
sekiranya (kesilapan== Salah):
gaji=asas + global5.Perubatan+ global5.Pengangkutan
mencetak('Gaji% s adalah% d'%(nama,gaji))
yang lain:
mencetak('Pos tidak dijumpai')

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip. Di sini, skrip dijalankan dua kali dengan catatan yang sah dan catatan yang tidak sah.

Kesimpulan:

Konsep pemboleh ubah global dalam python dijelaskan dalam tutorial ini dengan pelbagai contoh mudah untuk pengguna python baru. Saya harap pembaca akan mendapat pengetahuan yang betul mengenai pemboleh ubah global dan juga pemboleh ubah tempatan setelah membaca tutorial ini.

Tonton Video Pengarang: di sini