Bagaimana Anda menggunakan variabel fungsi dalam fungsi lain di python?
Nilai default dievaluasi saat fungsi didefinisikan, bukan saat dipanggil. Ini bisa menjadi masalah saat menggunakan tipe yang bisa berubah (mis. g. kamus atau daftar) dan memodifikasinya di badan fungsi, karena modifikasi akan tetap ada di seluruh pemanggilan fungsi Show
Menggunakan tipe yang tidak dapat diubah dalam argumen kata kunci In [124]: bigx = 10 In [125]: def double_it(x=bigx): .....: return x * 2 .....: In [126]: bigx = 1e9 # Now really big In [128]: double_it() Out[128]: 20 Menggunakan tipe yang bisa berubah dalam argumen kata kunci (dan memodifikasinya di dalam badan fungsi) In [2]: def add_to_dict(args={'a': 1, 'b': 2}): ...: for i in args.keys(): ...: args[i] += 1 ...: print(args) ...: In [3]: add_to_dict Out[3]: <function __main__.add_to_dict> In [4]: add_to_dict() {'a': 2, 'b': 3} In [5]: add_to_dict() {'a': 3, 'b': 4} In [6]: add_to_dict() {'a': 4, 'b': 5}_ Tip Contoh yang lebih terlibat menerapkan pemotongan python In [98]: def slicer(seq, start=None, stop=None, step=None): ....: """Implement basic python slicing.""" ....: return seq[start:stop:step] ....: In [101]: rhyme = 'one fish, two fish, red fish, blue fish'.split() In [102]: rhyme Out[102]: ['one', 'fish,', 'two', 'fish,', 'red', 'fish,', 'blue', 'fish'] In [103]: slicer(rhyme) Out[103]: ['one', 'fish,', 'two', 'fish,', 'red', 'fish,', 'blue', 'fish'] In [104]: slicer(rhyme, step=2) Out[104]: ['one', 'two', 'red', 'blue'] In [105]: slicer(rhyme, 1, step=2) Out[105]: ['fish,', 'fish,', 'fish,', 'fish'] In [106]: slicer(rhyme, start=1, stop=4, step=2) Out[106]: ['fish,', 'fish,'] Urutan argumen kata kunci tidak masalah In [107]: slicer(rhyme, step=2, start=1, stop=4) Out[107]: ['fish,', 'fish,'] tetapi merupakan praktik yang baik untuk menggunakan pengurutan yang sama dengan definisi fungsi Argumen kata kunci adalah fitur yang sangat nyaman untuk mendefinisikan fungsi dengan jumlah variabel argumen, terutama ketika nilai default akan digunakan di sebagian besar panggilan ke fungsi 1. 2. 4. 4. Melewati nilaiTip Bisakah Anda mengubah nilai variabel di dalam suatu fungsi? . Dalam Python, perbedaan seperti itu agak dibuat-buat, dan agak tidak kentara apakah variabel Anda akan dimodifikasi atau tidak. Untungnya, ada aturan yang jelas Parameter ke fungsi adalah referensi ke objek, yang diteruskan oleh nilai. Saat Anda meneruskan variabel ke suatu fungsi, python meneruskan referensi ke objek yang dirujuk oleh variabel tersebut (nilainya). Bukan variabel itu sendiri Jika nilai yang diteruskan dalam suatu fungsi tidak dapat diubah, fungsi tersebut tidak mengubah variabel pemanggil. Jika nilainya bisa berubah, fungsi dapat mengubah variabel pemanggil di tempat >>> def try_to_modify(x, y, z): .. x = 23 .. y.append(42) .. z = [99] # new reference .. print(x) .. print(y) .. print(z) ... >>> a = 77 # immutable variable >>> b = [99] # mutable variable >>> c = [28] >>> try_to_modify(a, b, c) 23 [99, 42] [99] >>> print(a) 77 >>> print(b) [99, 42] >>> print(c) [28]_ Fungsi memiliki tabel variabel lokal yang disebut namespace lokal Variabel In [6]: def disk_area(radius): ...: return 3.14 * radius * radius ...: In [8]: disk_area(1.5) Out[8]: 7.0649999999999995_9 hanya ada di dalam fungsi In [81]: def double_it(x): ....: return x * 2 ....: In [82]: double_it(3) Out[82]: 6 In [83]: double_it() --------------------------------------------------------------------------- Traceback (most recent call last): File "0 1. 2. 4. 5. Variabel globalVariabel yang dideklarasikan di luar fungsi dapat dirujuk di dalam fungsi In [114]: x = 5 In [115]: def addx(y): .....: return x + y .....: In [116]: addx(10) Out[116]: 15 Tetapi variabel "global" ini tidak dapat dimodifikasi di dalam fungsi, kecuali dinyatakan global dalam fungsi tersebut Ini tidak berhasil In [6]: def disk_area(radius): ...: return 3.14 * radius * radius ...: In [8]: disk_area(1.5) Out[8]: 7.06499999999999950 Ini bekerja In [6]: def disk_area(radius): ...: return 3.14 * radius * radius ...: In [8]: disk_area(1.5) Out[8]: 7.06499999999999951 1. 2. 4. 6. Jumlah variabel parameterBentuk parameter khusus
In [6]: def disk_area(radius): ...: return 3.14 * radius * radius ...: In [8]: disk_area(1.5) Out[8]: 7.06499999999999952 1. 2. 4. 7. DocstringDokumentasi tentang apa yang dilakukan fungsi dan parameternya. Konvensi umum In [6]: def disk_area(radius): ...: return 3.14 * radius * radius ...: In [8]: disk_area(1.5) Out[8]: 7.0649999999999995_3 Catatan pedoman Docstring Demi standardisasi, halaman web Konvensi Docstring mendokumentasikan semantik dan konvensi yang terkait dengan docstring Python Selain itu, modul Numpy dan Scipy telah menetapkan standar yang tepat untuk mendokumentasikan fungsi ilmiah, yang mungkin ingin Anda ikuti untuk fungsi Anda sendiri, dengan bagian In [81]: def double_it(x): ....: return x * 2 ....: In [82]: double_it(3) Out[82]: 6 In [83]: double_it() --------------------------------------------------------------------------- Traceback (most recent call last): File "3, bagian In [81]: def double_it(x): ....: return x * 2 ....: In [82]: double_it(3) Out[82]: 6 In [83]: double_it() --------------------------------------------------------------------------- Traceback (most recent call last): File "4, dll. Lihat 1. 2. 4. 8. Fungsi adalah objekFungsi adalah objek kelas satu, yang artinya bisa
In [6]: def disk_area(radius): ...: return 3.14 * radius * radius ...: In [8]: disk_area(1.5) Out[8]: 7.0649999999999995_4 1. 2. 4. 9. MetodeMetode adalah fungsi yang melekat pada objek. Anda telah melihat ini dalam contoh kami di daftar, kamus, string, dll... Bagaimana Anda menggunakan satu variabel fungsi di fungsi lain?Anda dapat menggunakan fungsi untuk menetapkan nilai variabel di luar konteks fungsi, kemudian Anda dapat menggunakannya sebagai argumen dalam fungsi lain. You can use the function to set the value of a variable outside the context of the function, then you can use it as an argument in another function.
Bagaimana cara meneruskan variabel dari satu fungsi ke fungsi lain dengan Python?Pertanyaan ini sudah ada jawabannya di sini. . Inisialisasi 'daftar' sebagai daftar kosong; . ) Di dalam defineAList(), tetapkan nilai tertentu ke dalam daftar; Di dalam main(), panggil useTheList(list) Bisakah fungsi menggunakan variabel dari fungsi lain?Tidak, variabel yang dideklarasikan dalam fungsi bersifat lokal untuk fungsi tersebut . Anda harus mendeklarasikan variabel di luar fungsi untuk menggunakannya dalam banyak fungsi.
Bagaimana cara menggunakan hasil fungsi di fungsi lain Python?Tampilkan aktivitas pada postingan ini. . RETURN output dari fungsi A. def A(bil1,bil2). num3 = num1+num2 mengembalikan num3 Saat Anda memanggil fungsi A, simpan hasilnya di variabel lain. hasil = A(12,14). Saat memanggil fungsi B, alih-alih num3, berikan nilai yang disimpan di 'hasil'. Argumen kedua bisa berupa angka apa saja |