Cara menggunakan AVARIABLE pada Python

Bagaimana cara mengatur variabel global di dalam fungsi python?

Untuk menggunakan variabel global di dalam suatu fungsi, Anda perlu melakukan global <varName> di dalam fungsi, seperti itu.

testVar = 0

def testFunc():
    global testVar
    testVar += 1

print testVar
testFunc()
print testVar

memberikan output

>>> 
0
1

Perlu diingat, bahwa Anda hanya perlu mendeklarasikannya global di dalam fungsi jika Anda ingin melakukan penugasan/mengubahnya. global tidak diperlukan untuk mencetak dan mengakses.

Anda dapat melakukan,

def testFunc2():
    print testVar

tanpa mendeklarasikannya global seperti yang kami lakukan pada fungsi pertama dan masih akan memberikan nilai baik-baik saja. 

Menggunakan list sebagai contoh, Anda tidak dapat menetapkan list tanpa menyatakannya global tetapi Anda dapat memanggil metode itu dan mengubah daftar. Seperti berikut.

testVar = []
def testFunc1():
    testVar = [2] # Will create a local testVar and assign it [2], but will not change the global variable.

def testFunc2():
    global testVar
    testVar = [2] # Will change the global variable.

def testFunc3():
    testVar.append(2) # Will change the global variable.

Global dapat diakses oleh fungsi apa pun, tetapi hanya dapat dimodifikasi jika Anda secara eksplisit mendeklarasikannya dengan kata kunci 'global' di dalam fungsi. Ambil, misalnya, fungsi yang mengimplementasikan penghitung. Anda bisa melakukannya dengan variabel global seperti ini:

count = 0

def funct():
    global count
    count += 1
    return count

print funct() # prints 1
a = funct() # a = 2
print funct() # prints 3
print a # prints 2

print count # prints 3

Sekarang, ini semua baik dan bagus, tetapi umumnya bukan ide yang baik untuk menggunakan variabel global untuk apa pun kecuali konstanta. Anda bisa memiliki implementasi alternatif menggunakan penutupan, yang akan menghindari mencemari namespace dan menjadi lebih bersih:

def initCounter():
    count = 0
    def incrementCounter():
        count += 1
        return count

    #notice how you're returning the function with no parentheses 
    #so you return a function instead of a value
    return incrementCounter 

myFunct = initCounter()
print myFunct() # prints 1
a = myFunct() # a = 2
print myFunct() # prints 3
print a # prints 2

print count # raises an error! 
            # So you can use count for something else if needed!

Pertimbangkan kode berikut:

a = 1

def f():
    # uses global because it hasn't been rebound
    print 'f: ',a

def g():
    # variable is rebound so global a isn't touched
    a = 2
    print 'g: ',a

def h():
    # specify that the a we want is the global variable
    global a
    a = 3
    print 'h: ',a

print 'global: ',a
f()
print 'global: ',a
g()
print 'global: ',a
h()
print 'global: ',a

Keluaran:

global:  1
f:  1
global:  1
g:  2
global:  1
h:  3
global:  3

Pada dasarnya Anda menggunakan variabel global saat Anda membutuhkan setiap fungsi untuk mengakses variabel (objek) yang sama. Ini tidak selalu merupakan cara terbaik.

Deklarasi eksplisit dengan menggunakan global <variable name> di dalam suatu fungsi akan membantu

Dalam contoh di bawah ini, kita memiliki variabel c yang didefinisikan di luar fungsi lainnya. Dalam foo kami juga mendeklarasikan c, menambahkannya, dan mencetaknya. Anda dapat melihat bahwa berulang kali memanggil foo() akan menghasilkan hasil yang sama berulang-ulang, karena c di foo bersifat lokal dalam cakupan fungsi.

Namun dalam bar, kata kunci global ditambahkan sebelum c. Sekarang variabel c merujuk variabel apa pun c yang didefinisikan dalam lingkup global (mis. Instance c = 1 kami didefinisikan sebelum fungsi-fungsi). Memanggil bar berulang kali memperbarui c global alih-alih satu lingkup lokal.

>>> c = 1
>>> def foo():
...     c = 0
...     c += 1
...     print c
...
>>> def bar():
...     global c
...     c += 1
...     print c
...
>>> foo()
1
>>> foo()
1
>>> foo()
1
>>> bar()
2
>>> bar()
3

Saya telah bergulat dengan pertanyaan yang sama/salah paham tentang apa yang saya inginkan selama beberapa hari, dan saya pikir apa yang mungkin ingin Anda capai adalah memiliki fungsi keluaran hasil, yang dapat digunakan setelah fungsi selesai berjalan.

Cara yang dapat Anda lakukan di atas adalah dengan menggunakan return "some result", dan kemudian menugaskannya ke variabel setelah fungsi . Berikut ini contoh di bawah ini:

#function
def test_f(x):
    y = x + 2
    return y

#execute function, and assign result as another variable
var = test_f(3)
#can use the output of test_f()!
print var      #returns 5
print var + 3  #returns 8

Variabel normal hanya dapat digunakan di dalam suatu fungsi, variabel global dapat dipanggil untuk di luar fungsi, tetapi jangan gunakan ini jika Anda tidak perlu, itu dapat membuat kesalahan dan perusahaan pemrograman besar menganggap ini hal yang baru untuk melakukan.

Bagaimana penulisan variabel dengan menggunakan python?

Variabel dalam python memiliki format penulisan nama_variabel = <nilai>. Variabel dapat berisi teks maupun bilangan. Terdapat beberapa aturan penulisan variabel, yaitu : nama variabel boleh diawali menggunakan huruf atau garis bawah (_) dan tidak dapat dimulai dengan angka (0-9), contoh: namasaya, _nama.

Bagaimana cara menulis variabel yang benar?

Penulisan Kode Program untuk Variabel yang Benar adalah Nama variabel wajib diawali dengan garis bawah atau underscore _ atau huruf, tidak boleh angka, lalu karakter berikutnya bisa angka, huruf, dan garis bawah. Nama variabel tidak bisa menggunakan spasi jika ingin program kamu berjalan dengan baik.

Apakah kegunaan tanda pagar (#) dalam python?

Untuk menggunakan komentar anda cukup menulis tanda pagar # , diikuti dengan komentar Anda.

Manakah yang boleh digunakan sebagai variabel?

Dalam menamai variable, nama hanya boleh terdiri dari huruf (a-z , A-Z), angka (0-9), dan underscore. Simbol lain seperti #,+,% atau ! Serta spasi tidak diperbolehkan. Variable hanya boleh diawali underscore atau huruf dantidak boleh diawali dengan angka.