16. Lampiran

16.1. Mode Interaktif

16.1.1. Penanganan Kesalahan

When an error occurs, the interpreter prints an error message and a stack trace. In interactive mode, it then returns to the primary prompt; when input came from a file, it exits with a nonzero exit status after printing the stack trace. (Exceptions handled by an except clause in a try statement are not errors in this context.) Some errors are unconditionally fatal and cause an exit with a nonzero exit status; this applies to internal inconsistencies and some cases of running out of memory. All error messages are written to the standard error stream; normal output from executed commands is written to standard output.

Mengetik karakter interupsi (biasanya Control-C atau Delete) ke prompt utama atau sekunder membatalkan masukan dan kembali ke prompt utama. [1] Mengetik interupsi saat sebuah perintah dieksekusi memunculkan pengecualian KeyboardInterrupt, yang dapat ditangani oleh pernyataan :keyword:` try`.

16.1.2. Skrip Python Yang Dapat Dieksekusi

Pada sistem Unix BSD'ish, skrip Python dapat dibuat langsung dapat dieksekusi, seperti skrip shell, dengan meletakkan baris

#!/usr/bin/env python3

(dengan asumsi bahwa interpreter ada di PATH pengguna) di awal skrip dan memberikan mode pada berkas untuk dapat dieksekusi. #! Harus merupakan dua karakter pertama dari file tersebut. Pada beberapa platform, baris pertama ini harus diakhiri dengan akhiran bergaya Unix ('\n'), bukan akhiran Windows ('\r\n'). Perhatikan bahwa hash, atau pon, karakter, '#', digunakan untuk memulai komentar dengan Python.

Skrip bisa diberikan mode yang dapat dieksekusi, atau izin, menggunakan perintah chmod.

$ chmod +x myscript.py

Pada sistem Windows, tidak ada gagasan tentang "mode yang dapat dieksekusi". Pemasang Python secara otomatis mengaitkan file .py dengan python.exe sehingga klik dua kali pada file Python akan menjalankannya sebagai skrip. Ekstensi juga bisa .pyw, dalam hal ini, jendela konsol yang biasanya muncul dihilangkan.

16.1.3. Berkas Permulaan Interaktif

Ketika Anda menggunakan Python secara interaktif, seringkali berguna untuk menjalankan beberapa perintah standar setiap kali interpreter dimulai. Anda dapat melakukan ini dengan mengatur variabel lingkungan bernama PYTHONSTARTUP ke nama berkas yang berisi perintah permulaan Anda. Ini mirip dengan fitur .profile dari shell Unix.

File ini hanya dibaca dalam sesi interaktif, bukan ketika Python membaca perintah dari skrip, dan bukan ketika /dev/tty diberikan sebagai sumber perintah eksplisit (yang jika tidak berperilaku seperti sesi interaktif). Itu dieksekusi di namespace yang sama di mana perintah interaktif dieksekusi, sehingga objek yang didefinisikan atau impor dapat digunakan tanpa kualifikasi dalam sesi interaktif. Anda juga dapat mengubah prompt sys.ps1 dan sys.ps2 dalam file ini.

Jika Anda ingin membaca berkas permulaan tambahan dari direktori saat ini, Anda dapat memrogram ini dalam berkas permulaan global menggunakan kode seperti if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read()). Jika Anda ingin menggunakan berkas permulaan dalam skrip, Anda harus melakukan ini secara eksplisit dalam skrip:

import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
    with open(filename) as fobj:
        startup_file = fobj.read()
    exec(startup_file)

16.1.4. Modul Ubahsuaian

Python provides two hooks to let you customize it: sitecustomize and usercustomize. To see how it works, you need first to find the location of your user site-packages directory. Start Python and run this code:

>>> import site
>>> site.getusersitepackages()
'/home/user/.local/lib/python3.x/site-packages'

Sekarang Anda dapat membuat file bernama usercustomize.py di direktori itu dan memasukkan apa pun yang Anda inginkan di dalamnya. Ini akan memengaruhi setiap seruan dari Python, kecuali dimulai dengan opsi -s untuk menonaktifkan impor otomatis.

sitecustomize works in the same way, but is typically created by an administrator of the computer in the global site-packages directory, and is imported before usercustomize. See the documentation of the site module for more details.

Catatan kaki