Latest web development tutorials

Python Modul

Modul memungkinkan Anda untuk secara logis mengatur kode Python Anda.

Menetapkan kode yang relevan ke dalam modul untuk membuat kode Anda lebih mudah digunakan, lebih dimengerti.

modul python adalah obyek dengan atribut nama acak digunakan untuk mengikat atau referensi.

Sederhananya, modul adalah kode Python untuk menyimpan file. Modul dapat menentukan fungsi, kelas dan variabel. Modul dapat berisi kode executable.

contoh

Disebut modul AName dalam kode Python pada umumnya dapat ditemukan dalam sebuah file bernama aname.py. Contoh berikut adalah modul support.py sederhana.

def print_func( par ):
   print "Hello : ", par
   return


pernyataan impor

Ingin menggunakan file sumber Python, cukup melakukan pernyataan impor lain di file sumber, sintaksnya adalah sebagai berikut:

import module1[, module2[,... moduleN]

Ketika penafsir bertemu pernyataan impor, jika modul akan diimpor dalam path pencarian saat ini.

Path pencarian adalah seorang penerjemah pertama akan mencari daftar semua direktori. Ketika Anda ingin mengimpor modul support.py, Anda harus menempatkan perintah di atas script:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入模块
import support
 
# 现在可以调用模块里包含的函数了
support.print_func("Zara")

Contoh output di atas:

Hello : Zara

Sebuah modul hanya akan diimpor sekali, tidak peduli berapa kali Anda mengeksekusi impor. Hal ini untuk mencegah modul impor dijalankan lagi dan lagi.



Dari ... pernyataan impor

Python memungkinkan Anda untuk mengimpor pernyataan dari sebagian tertentu dari modul ke dalam namespace saat ini. Sintaksnya adalah sebagai berikut:

from modname import name1[, name2[, ... nameN]]

Misalnya, untuk mengimpor fungsi fibonacci modul fib, menggunakan pernyataan berikut:

from fib import fibonacci

Pernyataan ini tidak fib seluruh modul ke dalam namespace saat ini, itu hanya akan fib Lane fibonacci diperkenalkan ke global implementasi tabel simbol tunggal modul deklarasi ini.



Dari ... import * pernyataan

Semua isi modul semua ke dalam namespace saat ini mungkin, hanya menggunakan pernyataan berikut:

from modname import *

Ini menyediakan cara mudah untuk mengimpor modul dalam semua proyek. Namun, pernyataan ini tidak boleh terlalu banyak digunakan.



modul positioning

Ketika Anda mengimpor modul, Python parser modul posisi urutan pencarian adalah:

  • direktori saat ini
  • Jika tidak di direktori saat ini, Python akan mencari setiap direktori dalam variabel PYTHONPATH shell.
  • Jika Anda tidak dapat menemukan, Python akan melihat jalan default. Di bawah UNIX, jalan default biasanya / usr / local / lib / python /.

path pencarian modul disimpan dalam sys.path modul sistem variabel. Variabel berisi direktori saat ini, PYTHONPATH dan direktori instalasi default dengan proses pengambilan keputusan.



variabel PYTHONPATH

Sebagai variabel lingkungan, PYTHONPATH oleh dipasang di daftar banyak direktori. PYTHONPATH shell sintaks PATH variabel dan sama.

Pada sistem Windows, PYTHONPATH khas sebagai berikut:

set PYTHONPATH=c:\python20\lib;

Pada sistem UNIX, PYTHONPATH khas sebagai berikut:

set PYTHONPATH=/usr/local/lib/python


Ruang nama dan cakupan

Variabel adalah nama dari objek memiliki pencocokan (identifier). Namespace adalah variabel yang berisi nama dari mereka (kunci) dan masing-masing objek yang (nilai) dari kamus.

Ekspresi Python dapat mengakses variabel namespace namespace lokal dan global. Jika sebuah variabel lokal dengan nama yang sama sebagai variabel global, variabel lokal akan mengesampingkan variabel global.

Setiap fungsi memiliki namespace sendiri. Lingkup aturan sebagai metode kelas dan fungsi normal.

Python cerdas menebak suatu variabel lokal atau global, diasumsikan bahwa setiap variabel dalam tugas fungsi lokal.

Oleh karena itu, jika Anda memberikan tugas variabel global dalam fungsi, Anda harus menggunakan pernyataan global.

Ekspresi VarName global yang memberitahu Python, VarName adalah variabel global, sehingga Python tidak menemukan variabel ini dalam namespace lokal.

Sebagai contoh, kita mendefinisikan uang variabel dalam namespace global. Kami kemudian dalam fungsi ditugaskan untuk uang variabel, maka Python akan menganggap bahwa uang adalah variabel lokal. Namun, kami tidak mendeklarasikan variabel lokal sebelum mengakses uang, hasilnya adalah bahwa akan ada kesalahan UnboundLocalError. Pembatalan global yang komentar pernyataan dapat memecahkan masalah ini.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
Money = 2000
def AddMoney():
   # 想改正代码就取消以下注释:
   # global Money
   Money = Money + 1
 
print Money
AddMoney()
print Money


dir () function

dir () fungsi adalah daftar string baris urutan yang baik, konten adalah nama yang ditetapkan modul.

Mengembalikan daftar semua modul untuk mengakomodasi, variabel dan fungsi yang ditetapkan dalam modul. Contoh sederhana adalah sebagai berikut:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入内置math模块
import math
 
content = dir(math)
 
print content;

Contoh output di atas:

['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 
'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 
'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 
'sqrt', 'tan', 'tanh']

Di sini, string khusus variabel __name__ nama jalur modul, __ titik file__ Impor nama file modul.



GLOBALS () dan penduduk setempat () fungsi

Tergantung pada panggilan lokal, GLOBALS () dan penduduk setempat () fungsi dapat digunakan untuk mengembalikan global dan lokal nama namespace.

Jika Anda menghubungi penduduk setempat dalam fungsi (), kembali dapat mengakses semua fungsi dalam nama.

Jika Anda menghubungi GLOBALS () dalam fungsi mengembalikan semua nama fungsi dalam akses energi global.

Kedua fungsi kembali jenis adalah kamus. Jadi nama kita menggunakan tombol () fungsi penghapusan.



reload () function

Ketika sebuah modul diperkenalkan ke atas bagian modul naskah kode dijalankan hanya sekali.

Jadi, jika Anda ingin kembali mengeksekusi modul di bagian atas kode, Anda dapat menggunakan fungsi reload (). Fungsi ini akan diimpor kembali sebelum modul diimpor. Sintaksnya adalah sebagai berikut:

reload(module_name)

Di sini, module nama modul yang akan ditempatkan langsung, bukan string. Misalnya, Anda ingin menimpa modul halo, sebagai berikut:

reload(hello)


Paket Python

Paket adalah struktur direktori hirarkis, yang mendefinisikan paket anak dengan modul dan sub-paket, dan subpackages bawah komponen lain dari lingkungan aplikasi Python.

Pertimbangkan file pots.py di direktori telepon. file ini memiliki kode sumber berikut:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
def Pots():
   print "I'm Pots Phone"
   

Demikian pula, kita memiliki dua fungsi yang berbeda untuk menyimpan file:

  • Telepon / Isdn.py mengandung fungsi ISDN ()
  • Telepon / G3.py mengandung fungsi G3 ()

Sekarang, membuat __init__.py file dalam direktori Telepon:

  • Telepon / __ init__.py

Ketika Anda mengimpor Phone, untuk dapat menggunakan semua fungsi yang Anda butuhkan untuk menggunakan pernyataan impor eksplisit dalam tahun __init__.py, sebagai berikut:

from Pots import Pots
from Isdn import Isdn
from G3 import G3

Ketika Anda menambahkan kode untuk __init__.py, paket Telepon diimpor ketika kelas-kelas ini semua tersedia di.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入 Phone 包
import Phone
 
Phone.Pots()
Phone.Isdn()
Phone.G3()

Contoh output di atas:

I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone

Seperti, misalnya, kita hanya memiliki satu fungsi dalam setiap file, tetapi sebenarnya Anda dapat menempatkan banyak fungsi. Anda juga dapat mendefinisikan kelas Python dalam file ini, dan kemudian membangun sebuah paket untuk kelas ini.