Python ghi tuple vào tệp nhị phân

Dấu nhắc Python mặc định của trình bao tương tác. Thường thấy đối với các ví dụ mã có thể được thực thi tương tác trong trình thông dịch

callable(argument1, argument2, ...)
1

có thể tham khảo

  • Dấu nhắc Python mặc định của shell tương tác khi nhập mã cho một khối mã thụt lề, khi nằm trong một cặp dấu phân cách trái và phải phù hợp (dấu ngoặc đơn, dấu ngoặc vuông, dấu ngoặc nhọn hoặc dấu ngoặc kép) hoặc sau khi chỉ định một trình trang trí

  • Hằng số tích hợp

2 đến 3

Một công cụ cố gắng chuyển đổi Python 2. mã x sang Python 3. x bằng cách xử lý hầu hết các điểm không tương thích có thể được phát hiện bằng cách phân tích cú pháp nguồn và duyệt qua cây phân tích cú pháp

2to3 có sẵn trong thư viện tiêu chuẩn dưới dạng ; . Thấy

lớp cơ sở trừu tượng

Các lớp cơ sở trừu tượng bổ sung bằng cách cung cấp một cách để xác định các giao diện khi các kỹ thuật khác như sẽ vụng về hoặc sai một cách tinh vi (ví dụ với ). ABC giới thiệu các lớp con ảo, là các lớp không kế thừa từ một lớp nhưng vẫn được công nhận bởi và ; . Python đi kèm với nhiều ABC tích hợp cho cấu trúc dữ liệu (trong mô-đun), số (trong mô-đun), luồng (trong mô-đun), trình tìm và trình tải nhập (trong mô-đun). Bạn có thể tạo ABC của riêng mình với mô-đun

chú thích

Nhãn được liên kết với một biến, thuộc tính lớp hoặc tham số chức năng hoặc giá trị trả về, được sử dụng theo quy ước như một

Chú thích của biến cục bộ không thể được truy cập trong thời gian chạy, nhưng chú thích của biến toàn cục, thuộc tính lớp và hàm được lưu trữ trong thuộc tính đặc biệt của mô-đun, lớp và hàm tương ứng là

def f(arg):
    ...
f = staticmethod(f)

@staticmethod
def f(arg):
    ...
4

Xem , , PEP 484 và PEP 526 mô tả chức năng này. Ngoài ra, hãy xem các phương pháp hay nhất khi làm việc với chú thích

tranh luận

Một giá trị được truyền cho a (hoặc ) khi gọi hàm. Có hai loại lập luận

  • đối số từ khóa. một đối số đứng trước một mã định danh (e. g.

    def f(arg):
        ...
    f = staticmethod(f)
    
    @staticmethod
    def f(arg):
        ...
    
    5) trong một lệnh gọi hàm hoặc được truyền dưới dạng một giá trị trong từ điển trước
    def f(arg):
        ...
    f = staticmethod(f)
    
    @staticmethod
    def f(arg):
        ...
    
    6. Ví dụ:
    def f(arg):
        ...
    f = staticmethod(f)
    
    @staticmethod
    def f(arg):
        ...
    
    7 và
    def f(arg):
        ...
    f = staticmethod(f)
    
    @staticmethod
    def f(arg):
        ...
    
    8 đều là đối số từ khóa trong các lệnh gọi sau tới

    complex(real=3, imag=5)
    complex(**{'real': 3, 'imag': 5})
    

  • đối số vị trí. một đối số không phải là một đối số từ khóa. Các đối số vị trí có thể xuất hiện ở đầu danh sách đối số và/hoặc được chuyển thành các thành phần của một đối số đứng trước bởi

    def sum_two_numbers(a: int, b: int) -> int:
       return a + b
    
    0. Ví dụ:
    def f(arg):
        ...
    f = staticmethod(f)
    
    @staticmethod
    def f(arg):
        ...
    
    7 và
    def f(arg):
        ...
    f = staticmethod(f)
    
    @staticmethod
    def f(arg):
        ...
    
    8 đều là đối số vị trí trong các cuộc gọi sau

    complex(3, 5)
    complex(*(3, 5))
    

Các đối số được gán cho các biến cục bộ được đặt tên trong thân hàm. Xem phần để biết các quy tắc chi phối nhiệm vụ này. Về mặt cú pháp, bất kỳ biểu thức nào cũng có thể được sử dụng để biểu thị một đối số;

Xem thêm mục thuật ngữ, câu hỏi thường gặp về và PEP 362

trình quản lý bối cảnh không đồng bộ

Một đối tượng kiểm soát môi trường được nhìn thấy trong một câu lệnh bằng cách xác định các phương thức

def sum_two_numbers(a: int, b: int) -> int:
   return a + b
4 và
def sum_two_numbers(a: int, b: int) -> int:
   return a + b
5. Được giới thiệu bởi PEP 492

máy phát điện không đồng bộ

Một hàm trả về một. Nó trông giống như một hàm coroutine được xác định ngoại trừ việc nó chứa các biểu thức để tạo ra một loạt các giá trị có thể sử dụng được trong một vòng lặp

Thường đề cập đến hàm tạo không đồng bộ, nhưng có thể đề cập đến trình lặp trình tạo không đồng bộ trong một số ngữ cảnh. Trong trường hợp ý nghĩa dự định không rõ ràng, hãy sử dụng các thuật ngữ đầy đủ để tránh sự mơ hồ

Hàm tạo không đồng bộ có thể chứa các biểu thức cũng như các câu lệnh và câu lệnh

trình lặp máy phát điện không đồng bộ

Một đối tượng được tạo bởi một chức năng

Đây là một cái mà khi được gọi bằng phương thức

>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
2 trả về một đối tượng có thể chờ đợi sẽ thực thi phần thân của hàm tạo không đồng bộ cho đến biểu thức tiếp theo

Mỗi tạm thời tạm dừng xử lý, ghi nhớ trạng thái thực thi vị trí (bao gồm các biến cục bộ và các câu lệnh thử đang chờ xử lý). Khi trình vòng lặp trình tạo không đồng bộ tiếp tục một cách hiệu quả với một cái khác có thể chờ được trả về bởi

>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
2, nó sẽ tiếp tục ở nơi nó dừng lại. Xem PEP 492 và PEP 525

lặp lại không đồng bộ

Một đối tượng, có thể được sử dụng trong một tuyên bố. Phải trả về một từ phương thức

>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
7 của nó. Được giới thiệu bởi PEP 492

trình lặp không đồng bộ

Một đối tượng thực hiện các phương thức

>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
7 và
>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
2.
>>> sum(i*i for i in range(10))         # sum of squares 0, 1, 4, .. 81
285
0 phải trả về một đối tượng. giải quyết các đối tượng chờ được trả về bởi phương thức
>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
2 của một trình vòng lặp không đồng bộ cho đến khi nó đưa ra một ngoại lệ. Được giới thiệu bởi PEP 492

thuộc tính

Một giá trị được liên kết với một đối tượng thường được tham chiếu theo tên bằng các biểu thức chấm. Ví dụ: nếu một đối tượng o có thuộc tính a thì nó sẽ được tham chiếu là o. a

Có thể cung cấp cho đối tượng một thuộc tính có tên không phải là mã định danh như được xác định bởi , chẳng hạn như sử dụng , nếu đối tượng cho phép. Một thuộc tính như vậy sẽ không thể truy cập được bằng cách sử dụng biểu thức chấm và thay vào đó sẽ cần được truy xuất bằng

chờ đợi

Một đối tượng có thể được sử dụng trong một biểu thức. Có thể là một hoặc một đối tượng có phương thức

>>> sum(i*i for i in range(10))         # sum of squares 0, 1, 4, .. 81
285
7. Xem thêm PEP 492

BDFL

Nhà độc tài nhân từ suốt đời, một. k. a. Guido van Rossum, người tạo ra Python

tập tin nhị phân

A có thể đọc và viết. Ví dụ về tệp nhị phân là các tệp được mở ở chế độ nhị phân (

>>> sum(i*i for i in range(10))         # sum of squares 0, 1, 4, .. 81
285
8,
>>> sum(i*i for i in range(10))         # sum of squares 0, 1, 4, .. 81
285
9 hoặc
>>> sys.float_info[1]                   # indexed access
1024
>>> sys.float_info.max_exp              # named field access
1024
>>> isinstance(sys.float_info, tuple)   # kind of tuple
True
0),
>>> sys.float_info[1]                   # indexed access
1024
>>> sys.float_info.max_exp              # named field access
1024
>>> isinstance(sys.float_info, tuple)   # kind of tuple
True
1,
>>> sys.float_info[1]                   # indexed access
1024
>>> sys.float_info.max_exp              # named field access
1024
>>> isinstance(sys.float_info, tuple)   # kind of tuple
True
2 và các phiên bản của và

Xem thêm đối tượng tệp có thể đọc và ghi các đối tượng

tài liệu tham khảo mượn

Trong API C của Python, tham chiếu mượn là tham chiếu đến một đối tượng. Nó không sửa đổi số lượng tham chiếu đối tượng. Nó trở thành con trỏ lơ lửng nếu đối tượng bị hủy. Ví dụ: một bộ sưu tập rác có thể loại bỏ đối tượng cuối cùng và do đó phá hủy nó

Gọi trên được khuyến nghị để chuyển đổi nó thành tại chỗ, trừ khi đối tượng không thể bị hủy trước lần sử dụng cuối cùng của tài liệu tham khảo đã mượn. Chức năng này có thể được sử dụng để tạo mới

đối tượng giống như byte

Một đối tượng hỗ trợ và có thể xuất bộ đệm C. Điều này bao gồm tất cả , và đối tượng, cũng như nhiều đối tượng phổ biến. Các đối tượng giống như byte có thể được sử dụng cho các hoạt động khác nhau hoạt động với dữ liệu nhị phân;

Một số hoạt động cần dữ liệu nhị phân có thể thay đổi. Tài liệu này thường gọi chúng là “các đối tượng giống byte đọc-ghi”. Ví dụ đối tượng bộ đệm có thể thay đổi bao gồm và a của a. Các hoạt động khác yêu cầu dữ liệu nhị phân được lưu trữ trong các đối tượng không thể thay đổi (“đối tượng giống như byte chỉ đọc”);

mã byte

Mã nguồn Python được biên dịch thành mã byte, biểu diễn bên trong của chương trình Python trong trình thông dịch CPython. Mã byte cũng được lưu trong bộ đệm trong các tệp

def func(foo, bar=None): ...
8 để việc thực thi cùng một tệp nhanh hơn lần thứ hai (có thể tránh được việc biên dịch lại từ mã nguồn sang mã byte). “Ngôn ngữ trung gian” này được cho là chạy trên một mã thực thi mã máy tương ứng với từng mã byte. Xin lưu ý rằng mã byte dự kiến ​​sẽ không hoạt động giữa các máy ảo Python khác nhau, cũng như không ổn định giữa các bản phát hành Python

Có thể tìm thấy danh sách các hướng dẫn mã byte trong tài liệu dành cho

gọi được

Có thể gọi được là một đối tượng có thể được gọi, có thể bằng một tập hợp các đối số (xem ), với cú pháp sau

callable(argument1, argument2, ...)

A , và bằng phần mở rộng a , có thể gọi được. Một thể hiện của một lớp thực hiện phương thức này cũng có thể gọi được

gọi lại

Một hàm chương trình con được truyền dưới dạng đối số sẽ được thực thi tại một thời điểm nào đó trong tương lai

tầng lớp

Một mẫu để tạo các đối tượng do người dùng định nghĩa. Các định nghĩa lớp thường chứa các định nghĩa phương thức hoạt động trên các thể hiện của lớp

biến lớp

Một biến được định nghĩa trong một lớp và chỉ được sửa đổi ở cấp độ lớp (i. e. , không phải trong một thể hiện của lớp)

số phức

Một phần mở rộng của hệ thống số thực quen thuộc, trong đó tất cả các số được biểu thị dưới dạng tổng của một phần thực và một phần ảo. Số ảo là bội số thực của đơn vị ảo (căn bậc hai của

def func(posonly1, posonly2, /, positional_or_keyword): ...
0), thường được viết là
def func(posonly1, posonly2, /, positional_or_keyword): ...
1 trong toán học hoặc
def func(posonly1, posonly2, /, positional_or_keyword): ...
2 trong kỹ thuật. Python có hỗ trợ tích hợp cho các số phức, được viết bằng ký hiệu sau này; . g. ,
def func(posonly1, posonly2, /, positional_or_keyword): ...
4. Để có quyền truy cập vào các tương đương phức tạp của mô-đun, hãy sử dụng. Sử dụng số phức là một tính năng toán học khá tiên tiến. Nếu bạn không biết về nhu cầu đối với chúng, gần như chắc chắn bạn có thể bỏ qua chúng một cách an toàn

quản lý bối cảnh

Một đối tượng kiểm soát môi trường được nhìn thấy trong một câu lệnh bằng cách xác định các phương thức

def func(posonly1, posonly2, /, positional_or_keyword): ...
8 và
def func(posonly1, posonly2, /, positional_or_keyword): ...
9. Xem PEP 343

biến ngữ cảnh

Một biến có thể có các giá trị khác nhau tùy thuộc vào ngữ cảnh của nó. Điều này tương tự với Thread-Local Storage trong đó mỗi luồng thực thi có thể có một giá trị khác nhau cho một biến. Tuy nhiên, với các biến bối cảnh, có thể có một số bối cảnh trong một luồng thực thi và cách sử dụng chính cho các biến bối cảnh là theo dõi các biến trong các tác vụ không đồng bộ đồng thời. Thấy

tiếp giáp

Một bộ đệm được coi là liền kề chính xác nếu nó là tiếp giáp C hoặc tiếp giáp Fortran. Bộ đệm không chiều là C và Fortran liền kề. Trong mảng một chiều, các mục phải được sắp xếp trong bộ nhớ cạnh nhau, theo thứ tự tăng dần chỉ số bắt đầu từ 0. Trong các mảng liền kề C nhiều chiều, chỉ số cuối cùng thay đổi nhanh nhất khi truy cập các mục theo thứ tự địa chỉ bộ nhớ. Tuy nhiên, trong các mảng liền kề của Fortran, chỉ số đầu tiên thay đổi nhanh nhất

công việc thường ngày

Coroutines là một dạng tổng quát hơn của chương trình con. Chương trình con được nhập vào tại một điểm và thoát ra tại một điểm khác. Các quy trình có thể được nhập, thoát và tiếp tục tại nhiều điểm khác nhau. Chúng có thể được thực hiện với tuyên bố. Xem thêm PEP 492

chức năng coroutine

Hàm trả về một đối tượng. Một hàm coroutine có thể được xác định bằng câu lệnh và có thể chứa các từ khóa , và. Chúng được giới thiệu bởi PEP 492

CPython

Việc triển khai chuẩn của ngôn ngữ lập trình Python, như được phân phối trên python. tổ chức. Thuật ngữ “CPython” được sử dụng khi cần thiết để phân biệt triển khai này với các triển khai khác như Jython hoặc IronPython

người trang trí

Một hàm trả về một hàm khác, thường được áp dụng như một phép biến đổi hàm bằng cách sử dụng cú pháp

complex(3, 5)
complex(*(3, 5))
06. Các ví dụ phổ biến cho người trang trí là và

Cú pháp trang trí chỉ đơn thuần là đường cú pháp, hai định nghĩa chức năng sau đây là tương đương về mặt ngữ nghĩa

def f(arg):
    ...
f = staticmethod(f)

@staticmethod
def f(arg):
    ...

Khái niệm tương tự tồn tại cho các lớp, nhưng ít được sử dụng hơn ở đó. Xem tài liệu để biết thêm về decorators

bộ mô tả

Bất kỳ đối tượng nào định nghĩa các phương thức

complex(3, 5)
complex(*(3, 5))
09,
complex(3, 5)
complex(*(3, 5))
10 hoặc
complex(3, 5)
complex(*(3, 5))
11. Khi một thuộc tính lớp là một bộ mô tả, hành vi liên kết đặc biệt của nó được kích hoạt khi tra cứu thuộc tính. Thông thường, sử dụng một. b để lấy, đặt hoặc xóa một thuộc tính tra cứu đối tượng có tên b trong từ điển lớp để tìm a, nhưng nếu b là một bộ mô tả, thì phương thức mô tả tương ứng sẽ được gọi. Hiểu các bộ mô tả là chìa khóa để hiểu sâu về Python vì chúng là cơ sở cho nhiều tính năng bao gồm hàm, phương thức, thuộc tính, phương thức lớp, phương thức tĩnh và tham chiếu đến các siêu lớp

Để biết thêm thông tin về các phương pháp của bộ mô tả, hãy xem hoặc

từ điển

Một mảng kết hợp, trong đó các khóa tùy ý được ánh xạ tới các giá trị. Các khóa có thể là bất kỳ đối tượng nào với các phương thức

complex(3, 5)
complex(*(3, 5))
12 và
complex(3, 5)
complex(*(3, 5))
13. Được gọi là hàm băm trong Perl

hiểu từ điển

Một cách nhỏ gọn để xử lý tất cả hoặc một phần của các phần tử trong một lần lặp và trả về từ điển cùng với kết quả.

complex(3, 5)
complex(*(3, 5))
14 tạo một từ điển chứa khóa
complex(3, 5)
complex(*(3, 5))
15 được ánh xạ tới giá trị
complex(3, 5)
complex(*(3, 5))
16. Thấy

xem từ điển

Các đối tượng được trả về từ , , và được gọi là dạng xem từ điển. Chúng cung cấp chế độ xem động cho các mục nhập của từ điển, có nghĩa là khi từ điển thay đổi, chế độ xem sẽ phản ánh những thay đổi này. Để buộc chế độ xem từ điển trở thành một danh sách đầy đủ, hãy sử dụng

complex(3, 5)
complex(*(3, 5))
20. Thấy

chuỗi tài liệu

Một chuỗi ký tự xuất hiện dưới dạng biểu thức đầu tiên trong một lớp, hàm hoặc mô-đun. Trong khi bị bỏ qua khi bộ được thực thi, nó được trình biên dịch nhận ra và đưa vào thuộc tính

complex(3, 5)
complex(*(3, 5))
21 của lớp, hàm hoặc mô-đun kèm theo. Vì nó có sẵn thông qua nội quan, nên nó là nơi chuẩn mực cho tài liệu về đối tượng

gõ vịt

Một phong cách lập trình không nhìn vào loại đối tượng để xác định xem nó có giao diện phù hợp hay không; . ”) Bằng cách nhấn mạnh các giao diện hơn là các loại cụ thể, mã được thiết kế tốt sẽ cải thiện tính linh hoạt của nó bằng cách cho phép thay thế đa hình. Duck-typing tránh các bài kiểm tra sử dụng hoặc. (Tuy nhiên, lưu ý rằng cách gõ vịt có thể được bổ sung bằng. ) Thay vào đó, nó thường sử dụng các bài kiểm tra hoặc lập trình

EAFP

Xin tha thứ dễ hơn xin phép. Phong cách mã hóa Python phổ biến này giả định sự tồn tại của các khóa hoặc thuộc tính hợp lệ và bắt các ngoại lệ nếu giả định đó sai. Phong cách rõ ràng và nhanh chóng này được đặc trưng bởi sự hiện diện của nhiều và tuyên bố. Kỹ thuật này tương phản với phong cách chung cho nhiều ngôn ngữ khác như C

sự diễn đạt

Một đoạn cú pháp có thể được ước tính cho một số giá trị. Nói cách khác, một biểu thức là sự tích lũy của các phần tử biểu thức như ký tự, tên, truy cập thuộc tính, toán tử hoặc lệnh gọi hàm, tất cả đều trả về một giá trị. Ngược lại với nhiều ngôn ngữ khác, không phải tất cả các cấu trúc ngôn ngữ đều là biểu thức. Ngoài ra còn có s mà không thể được sử dụng như biểu thức, chẳng hạn như. Bài tập cũng là câu lệnh, không phải biểu thức

mô-đun mở rộng

Một mô-đun được viết bằng C hoặc C++, sử dụng API C của Python để tương tác với lõi và với mã người dùng

chuỗi f

Các chuỗi ký tự có tiền tố là

complex(3, 5)
complex(*(3, 5))
28 hoặc
complex(3, 5)
complex(*(3, 5))
29 thường được gọi là “chuỗi f” viết tắt của. Xem thêm PEP 498

đối tượng tập tin

Một đối tượng hiển thị API hướng tệp (với các phương thức như

complex(3, 5)
complex(*(3, 5))
30 hoặc
complex(3, 5)
complex(*(3, 5))
31) cho một tài nguyên cơ bản. Tùy thuộc vào cách nó được tạo, một đối tượng tệp có thể làm trung gian truy cập vào tệp thực trên đĩa hoặc tới một loại thiết bị lưu trữ hoặc liên lạc khác (ví dụ: đầu vào/đầu ra tiêu chuẩn, bộ đệm trong bộ nhớ, ổ cắm, đường ống, v.v. ). Đối tượng tệp còn được gọi là đối tượng giống như tệp hoặc luồng

Thực tế có ba loại đối tượng tệp. raw , đệm và. Giao diện của chúng được xác định trong mô-đun. Cách chính tắc để tạo một đối tượng tệp là sử dụng hàm

đối tượng giống như tập tin

Một từ đồng nghĩa với

mã hóa hệ thống tập tin và xử lý lỗi

Mã hóa và trình xử lý lỗi được Python sử dụng để giải mã byte từ hệ điều hành và mã hóa Unicode sang hệ điều hành

Mã hóa hệ thống tệp phải đảm bảo giải mã thành công tất cả các byte dưới 128. Nếu mã hóa hệ thống tệp không cung cấp bảo đảm này, các chức năng API có thể tăng

Các chức năng và có thể được sử dụng để nhận mã hóa hệ thống tệp và trình xử lý lỗi

Được cấu hình khi khởi động Python bằng hàm

complex(3, 5)
complex(*(3, 5))
37. xem và các thành viên của

Xem thêm

công cụ tìm

Một đối tượng cố gắng tìm mô-đun đang được nhập

Kể từ Python 3. 3, có hai loại công cụ tìm. để sử dụng với và để sử dụng với

Xem PEP 302, PEP 420 và PEP 451 để biết thêm chi tiết

phân chia tầng

Phép chia toán học làm tròn xuống số nguyên gần nhất. Toán tử chia tầng là

complex(3, 5)
complex(*(3, 5))
43. Ví dụ: biểu thức
complex(3, 5)
complex(*(3, 5))
44 ước tính thành
complex(3, 5)
complex(*(3, 5))
45 ngược lại với giá trị
complex(3, 5)
complex(*(3, 5))
46 được trả về bởi phép chia thực float. Lưu ý rằng
complex(3, 5)
complex(*(3, 5))
47 là
complex(3, 5)
complex(*(3, 5))
48 vì đó là
complex(3, 5)
complex(*(3, 5))
49 được làm tròn xuống. Xem PEP 238

hàm số

Một loạt các câu lệnh trả về một số giá trị cho người gọi. Nó cũng có thể được chuyển bằng 0 hoặc nhiều hơn có thể được sử dụng trong quá trình thực thi phần thân. Xem thêm , , và phần

chú thích chức năng

Một tham số hàm hoặc giá trị trả về

Chú thích chức năng thường được sử dụng cho. ví dụ: chức năng này dự kiến ​​​​sẽ nhận hai đối số và cũng dự kiến ​​​​sẽ có giá trị trả về

________số 8_______

Cú pháp chú thích hàm được giải thích trong phần

Xem và PEP 484, mô tả chức năng này. Ngoài ra, hãy xem các phương pháp hay nhất khi làm việc với chú thích

__Tương lai__

A,

complex(3, 5)
complex(*(3, 5))
52, chỉ đạo trình biên dịch biên dịch mô-đun hiện tại bằng cách sử dụng cú pháp hoặc ngữ nghĩa sẽ trở thành tiêu chuẩn trong bản phát hành Python trong tương lai. Mô-đun ghi lại các giá trị có thể có của tính năng. Bằng cách nhập mô-đun này và đánh giá các biến của nó, bạn có thể biết khi nào một tính năng mới được thêm vào ngôn ngữ lần đầu tiên và khi nào nó sẽ (hoặc đã) trở thành mặc định

>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)

thu gom rác thải

Quá trình giải phóng bộ nhớ khi không sử dụng nữa. Python thực hiện thu gom rác thông qua đếm tham chiếu và bộ thu gom rác theo chu kỳ có khả năng phát hiện và phá vỡ các chu kỳ tham chiếu. Bộ thu gom rác có thể được điều khiển bằng mô-đun

máy phát điện

Một hàm trả về một. Nó trông giống như một hàm bình thường ngoại trừ việc nó chứa các biểu thức để tạo ra một loạt các giá trị có thể sử dụng được trong vòng lặp for hoặc có thể được truy xuất từng giá trị một với hàm

Thường đề cập đến một hàm tạo, nhưng có thể đề cập đến một trình lặp trình tạo trong một số ngữ cảnh. Trong trường hợp ý nghĩa dự định không rõ ràng, hãy sử dụng các thuật ngữ đầy đủ để tránh sự mơ hồ

bộ lặp máy phát điện

Một đối tượng được tạo bởi một chức năng

Mỗi tạm thời tạm dừng xử lý, ghi nhớ trạng thái thực thi vị trí (bao gồm các biến cục bộ và các câu lệnh thử đang chờ xử lý). Khi trình lặp trình tạo tiếp tục, nó sẽ tiếp tục ở nơi nó đã dừng lại (ngược lại với các hàm bắt đầu mới trên mỗi lệnh gọi)

biểu thức trình tạo

Một biểu thức trả về một iterator. Nó trông giống như một biểu thức bình thường theo sau bởi một mệnh đề

complex(3, 5)
complex(*(3, 5))
58 xác định một biến vòng lặp, phạm vi và một mệnh đề
complex(3, 5)
complex(*(3, 5))
59 tùy chọn. Biểu thức kết hợp tạo ra các giá trị cho một hàm kèm theo

>>> sum(i*i for i in range(10))         # sum of squares 0, 1, 4, .. 81
285

chức năng chung

Một chức năng bao gồm nhiều chức năng thực hiện cùng một hoạt động cho các loại khác nhau. Việc triển khai nào sẽ được sử dụng trong cuộc gọi được xác định bởi thuật toán điều phối

Xem thêm mục thuật ngữ, trình trang trí và PEP 443

loại chung

A có thể được tham số hóa; . Được sử dụng cho và

Để biết thêm chi tiết, hãy xem PEP 483, PEP 484, PEP 585 và mô-đun

GIL

Thấy

khóa phiên dịch viên toàn cầu

Cơ chế được trình thông dịch sử dụng để đảm bảo rằng chỉ có một luồng thực thi Python tại một thời điểm. Điều này đơn giản hóa việc triển khai CPython bằng cách làm cho mô hình đối tượng (bao gồm các loại tích hợp quan trọng như ) hoàn toàn an toàn trước truy cập đồng thời. Khóa toàn bộ trình thông dịch giúp trình thông dịch trở thành đa luồng dễ dàng hơn, với chi phí là phần lớn tính song song của các máy đa bộ xử lý

Tuy nhiên, một số mô-đun mở rộng, tiêu chuẩn hoặc bên thứ ba, được thiết kế để giải phóng GIL khi thực hiện các tác vụ tính toán chuyên sâu như nén hoặc băm. Ngoài ra, GIL luôn được giải phóng khi thực hiện I/O

Những nỗ lực trước đây để tạo ra một trình thông dịch “free-threaded” (một trình thông dịch khóa dữ liệu được chia sẻ ở mức độ chi tiết tốt hơn nhiều) đã không thành công vì hiệu suất bị ảnh hưởng trong trường hợp bộ xử lý đơn thông thường. Người ta tin rằng khắc phục vấn đề hiệu suất này sẽ làm cho việc triển khai phức tạp hơn nhiều và do đó tốn kém hơn để duy trì

pyc dựa trên hàm băm

Tệp bộ đệm mã byte sử dụng hàm băm thay vì thời gian sửa đổi lần cuối của tệp nguồn tương ứng để xác định tính hợp lệ của nó. Thấy

có thể băm

Một đối tượng có thể băm nếu nó có giá trị băm không bao giờ thay đổi trong suốt vòng đời của nó (nó cần một phương thức

complex(3, 5)
complex(*(3, 5))
12) và có thể được so sánh với các đối tượng khác (nó cần một phương thức
complex(3, 5)
complex(*(3, 5))
13). Các đối tượng có thể băm so sánh bằng nhau phải có cùng giá trị băm

Khả năng băm làm cho một đối tượng có thể sử dụng được như một khóa từ điển và một thành viên được thiết lập, bởi vì các cấu trúc dữ liệu này sử dụng giá trị băm bên trong

Hầu hết các đối tượng tích hợp sẵn bất biến của Python đều có thể băm được; . Các đối tượng là thể hiện của các lớp do người dùng định nghĩa có thể băm theo mặc định. Tất cả chúng đều so sánh không bằng nhau (ngoại trừ với chính chúng) và giá trị băm của chúng được lấy từ

nhàn rỗi

Môi trường học tập và phát triển tích hợp cho Python. là một môi trường biên tập và thông dịch cơ bản đi kèm với bản phân phối tiêu chuẩn của Python

bất biến

Một đối tượng có giá trị cố định. Các đối tượng bất biến bao gồm số, chuỗi và bộ dữ liệu. Một đối tượng như vậy không thể được thay đổi. Một đối tượng mới phải được tạo nếu một giá trị khác phải được lưu trữ. Chúng đóng một vai trò quan trọng ở những nơi cần giá trị băm không đổi, chẳng hạn như một khóa trong từ điển

đường dẫn nhập

Danh sách các vị trí (hoặc ) được tìm kiếm bởi mô-đun for để nhập. Trong quá trình nhập, danh sách các vị trí này thường đến từ , nhưng đối với các gói con, danh sách này cũng có thể đến từ thuộc tính

complex(3, 5)
complex(*(3, 5))
69 của gói mẹ

nhập khẩu

Quá trình mà mã Python trong một mô-đun được cung cấp cho mã Python trong một mô-đun khác

nhà nhập khẩu

Một đối tượng vừa tìm vừa tải một mô-đun;

tương tác

Python có một trình thông dịch tương tác, nghĩa là bạn có thể nhập các câu lệnh và biểu thức tại dấu nhắc của trình thông dịch, thực thi chúng ngay lập tức và xem kết quả của chúng. Chỉ cần khởi chạy

complex(3, 5)
complex(*(3, 5))
70 mà không có đối số (có thể bằng cách chọn nó từ menu chính của máy tính). Đó là một cách rất hiệu quả để thử nghiệm những ý tưởng mới hoặc kiểm tra các mô-đun và gói (hãy nhớ
complex(3, 5)
complex(*(3, 5))
71)

thông dịch

Python là một ngôn ngữ được giải thích, trái ngược với ngôn ngữ được biên dịch, mặc dù sự khác biệt có thể không rõ ràng do sự hiện diện của trình biên dịch mã byte. Điều này có nghĩa là các tệp nguồn có thể được chạy trực tiếp mà không cần tạo một tệp thực thi một cách rõ ràng. Các ngôn ngữ được thông dịch thường có chu kỳ phát triển/gỡ lỗi ngắn hơn so với các ngôn ngữ được biên dịch, mặc dù các chương trình của chúng thường chạy chậm hơn. Xem thêm

tắt phiên dịch

Khi được yêu cầu tắt, trình thông dịch Python sẽ chuyển sang một giai đoạn đặc biệt, trong đó nó dần dần giải phóng tất cả các tài nguyên được phân bổ, chẳng hạn như các mô-đun và các cấu trúc bên trong quan trọng khác nhau. Nó cũng thực hiện một số cuộc gọi đến. Điều này có thể kích hoạt việc thực thi mã trong hàm hủy do người dùng xác định hoặc hàm gọi lại yếu. Mã được thực thi trong giai đoạn tắt máy có thể gặp phải nhiều ngoại lệ khác nhau vì các tài nguyên mà nó dựa vào có thể không hoạt động nữa (ví dụ phổ biến là mô-đun thư viện hoặc máy cảnh báo)

Lý do chính khiến trình thông dịch tắt là do mô-đun

complex(3, 5)
complex(*(3, 5))
72 hoặc tập lệnh đang chạy đã thực thi xong

lặp đi lặp lại

Một đối tượng có khả năng trả lại từng thành viên của nó. Ví dụ về các lần lặp bao gồm tất cả các loại trình tự (chẳng hạn như , và ) và một số loại không theo trình tự như , và các đối tượng của bất kỳ lớp nào bạn xác định bằng phương thức

complex(3, 5)
complex(*(3, 5))
77 hoặc bằng phương thức
complex(3, 5)
complex(*(3, 5))
78 thực hiện ngữ nghĩa

Iterables có thể được sử dụng trong một vòng lặp và ở nhiều nơi khác khi cần một trình tự (, ,…). Khi một đối tượng có thể lặp lại được truyền dưới dạng đối số cho hàm tích hợp sẵn, nó sẽ trả về một trình lặp cho đối tượng. Trình lặp này tốt cho một lần vượt qua tập hợp các giá trị. Khi sử dụng iterables, thường không cần thiết phải tự gọi hoặc xử lý các đối tượng iterables. Câu lệnh

complex(3, 5)
complex(*(3, 5))
58 tự động thực hiện điều đó cho bạn, tạo một biến tạm thời chưa được đặt tên để giữ trình vòng lặp trong suốt thời gian của vòng lặp. Xem thêm , , và

trình vòng lặp

Một đối tượng đại diện cho một luồng dữ liệu. Các cuộc gọi lặp lại đến phương thức của trình vòng lặp (hoặc chuyển nó đến hàm tích hợp sẵn) trả về các mục liên tiếp trong luồng. Khi không có thêm dữ liệu, thay vào đó, một ngoại lệ sẽ được đưa ra. Tại thời điểm này, đối tượng iterator đã cạn kiệt và bất kỳ lệnh gọi nào khác đến phương thức

complex(3, 5)
complex(*(3, 5))
85 của nó sẽ tăng trở lại. Các trình lặp được yêu cầu phải có một phương thức
complex(3, 5)
complex(*(3, 5))
77 trả về chính đối tượng trình lặp để mọi trình lặp cũng có thể lặp được và có thể được sử dụng ở hầu hết các nơi chấp nhận các trình lặp khác. Một ngoại lệ đáng chú ý là mã thử nhiều lần lặp lại. Một đối tượng vùng chứa (chẳng hạn như a ) tạo ra một trình vòng lặp mới mỗi khi bạn chuyển nó vào hàm hoặc sử dụng nó trong một vòng lặp. Cố gắng thực hiện điều này với một trình vòng lặp sẽ chỉ trả về cùng một đối tượng trình vòng lặp đã cạn kiệt được sử dụng trong lần lặp trước đó, làm cho nó trông giống như một thùng chứa trống

Thông tin thêm có thể được tìm thấy trong

Chi tiết triển khai CPython. CPython không áp dụng nhất quán yêu cầu mà trình vòng lặp xác định

complex(3, 5)
complex(*(3, 5))
77

chức năng chính

Hàm chính hoặc hàm đối chiếu là một hàm có thể gọi được trả về một giá trị được sử dụng để sắp xếp hoặc sắp xếp. Ví dụ: được sử dụng để tạo khóa sắp xếp nhận biết các quy ước sắp xếp cụ thể của miền địa phương

Một số công cụ trong Python chấp nhận các hàm chính để kiểm soát cách sắp xếp hoặc nhóm các phần tử. Chúng bao gồm , , , , , , , và

Có một số cách để tạo một chức năng quan trọng. Ví dụ. phương thức có thể đóng vai trò là chức năng chính cho các loại phân biệt chữ hoa chữ thường. Ngoài ra, một chức năng quan trọng có thể được xây dựng từ một biểu thức chẳng hạn như

callable(argument1, argument2, ...)
06. Ngoài ra, , và là ba hàm tạo chính. Xem các ví dụ về cách tạo và sử dụng các chức năng chính

đối số từ khóa

Thấy

lamda

Một hàm nội tuyến ẩn danh bao gồm một hàm duy nhất được đánh giá khi hàm được gọi. Cú pháp để tạo một hàm lambda là

callable(argument1, argument2, ...)
10

LBYL

Xem xét trước khi bạn bước nhảy vọt. Phong cách mã hóa này kiểm tra rõ ràng các điều kiện trước khi thực hiện cuộc gọi hoặc tra cứu. Phong cách này trái ngược với cách tiếp cận và được đặc trưng bởi sự hiện diện của nhiều tuyên bố

Trong một môi trường đa luồng, cách tiếp cận LBYL có thể có nguy cơ đưa ra một điều kiện chạy đua giữa “đang tìm kiếm” và “đang nhảy vọt”. Ví dụ: mã,

callable(argument1, argument2, ...)
12 có thể không thành công nếu một luồng khác xóa khóa khỏi ánh xạ sau khi kiểm tra, nhưng trước khi tra cứu. Vấn đề này có thể được giải quyết bằng khóa hoặc bằng cách sử dụng phương pháp EAFP

mã hóa ngôn ngữ

Trên Unix, nó là mã hóa của ngôn ngữ LC_CTYPE. Nó có thể được thiết lập với

Trên Windows, đó là trang mã ANSI (ví dụ:.

callable(argument1, argument2, ...)
14)

Trên Android và VxWorks, Python sử dụng

callable(argument1, argument2, ...)
15 làm mã hóa ngôn ngữ

callable(argument1, argument2, ...)
16 có thể được sử dụng để lấy mã hóa miền địa phương

Xem thêm

danh sách

Một Python tích hợp. Mặc dù tên của nó giống với một mảng trong các ngôn ngữ khác hơn là một danh sách được liên kết vì quyền truy cập vào các phần tử là O(1)

hiểu danh sách

Một cách nhỏ gọn để xử lý tất cả hoặc một phần của các phần tử trong một chuỗi và trả về một danh sách có kết quả.

callable(argument1, argument2, ...)
17 tạo danh sách các chuỗi chứa các số hex chẵn (0x. ) trong khoảng từ 0 đến 255. Mệnh đề là tùy chọn. Nếu bỏ qua, tất cả các yếu tố trong
callable(argument1, argument2, ...)
19 được xử lý

người bốc vác

Một đối tượng tải một mô-đun. Nó phải định nghĩa một phương thức có tên là

callable(argument1, argument2, ...)
20. Một trình tải thường được trả về bởi một. Xem PEP 302 để biết chi tiết và để biết

phương pháp ma thuật

Một từ đồng nghĩa không chính thức cho

lập bản đồ

Một đối tượng vùng chứa hỗ trợ tra cứu khóa tùy ý và thực hiện các phương thức được chỉ định trong hoặc. Ví dụ bao gồm , , và

công cụ tìm đường dẫn meta

A được trả về bởi một tìm kiếm của. Công cụ tìm đường dẫn meta có liên quan đến, nhưng khác với

Xem các phương pháp mà công cụ tìm đường dẫn meta thực hiện

siêu lớp

Lớp của một lớp. Định nghĩa lớp tạo tên lớp, từ điển lớp và danh sách các lớp cơ sở. Siêu dữ liệu chịu trách nhiệm lấy ba đối số đó và tạo lớp. Hầu hết các ngôn ngữ lập trình hướng đối tượng đều cung cấp cài đặt mặc định. Điều khiến Python trở nên đặc biệt là có thể tạo các siêu dữ liệu tùy chỉnh. Hầu hết người dùng không bao giờ cần công cụ này, nhưng khi có nhu cầu, siêu dữ liệu có thể cung cấp các giải pháp mạnh mẽ, thanh lịch. Chúng đã được sử dụng để ghi nhật ký truy cập thuộc tính, thêm an toàn luồng, theo dõi việc tạo đối tượng, triển khai các singleton và nhiều tác vụ khác

Thông tin thêm có thể được tìm thấy trong

phương pháp

Một hàm được định nghĩa bên trong thân lớp. Nếu được gọi như một thuộc tính của một thể hiện của lớp đó, phương thức sẽ lấy đối tượng thể hiện làm đối tượng đầu tiên của nó (thường được gọi là

callable(argument1, argument2, ...)
30). Xem và

thứ tự giải quyết phương pháp

Thứ tự giải quyết phương pháp là thứ tự mà các lớp cơ sở được tìm kiếm thành viên trong quá trình tra cứu. Xem Con trăn 2. 3 Thứ tự giải quyết phương pháp để biết chi tiết về thuật toán được trình thông dịch Python sử dụng kể từ phiên bản 2. 3 phát hành

mô-đun

Một đối tượng phục vụ như một đơn vị tổ chức của mã Python. Các mô-đun có một không gian tên chứa các đối tượng Python tùy ý. Các mô-đun được tải vào Python theo quy trình

Xem thêm

thông số mô-đun

Một không gian tên chứa thông tin liên quan đến nhập khẩu được sử dụng để tải mô-đun. Một trường hợp của

MRO

Thấy

có thể thay đổi

Các đối tượng có thể thay đổi có thể thay đổi giá trị của chúng nhưng vẫn giữ nguyên. Xem thêm

tuple được đặt tên

Thuật ngữ “bộ được đặt tên” áp dụng cho bất kỳ loại hoặc lớp nào kế thừa từ bộ và các phần tử có thể lập chỉ mục của chúng cũng có thể truy cập được bằng cách sử dụng các thuộc tính được đặt tên. Loại hoặc lớp cũng có thể có các tính năng khác

Một số loại dựng sẵn được đặt tên là bộ dữ liệu, bao gồm các giá trị được trả về bởi và. Một ví dụ khác là

>>> sys.float_info[1]                   # indexed access
1024
>>> sys.float_info.max_exp              # named field access
1024
>>> isinstance(sys.float_info, tuple)   # kind of tuple
True

Một số bộ dữ liệu được đặt tên là các loại tích hợp sẵn (chẳng hạn như các ví dụ trên). Ngoài ra, một bộ dữ liệu được đặt tên có thể được tạo từ một định nghĩa lớp thông thường kế thừa từ đó và định nghĩa các trường được đặt tên. Một lớp như vậy có thể được viết bằng tay hoặc nó có thể được tạo bằng chức năng xuất xưởng. Kỹ thuật thứ hai cũng thêm một số phương thức bổ sung có thể không tìm thấy trong các bộ dữ liệu được đặt tên viết tay hoặc tích hợp sẵn

không gian tên

Nơi lưu trữ biến. Không gian tên được triển khai dưới dạng từ điển. Có các không gian tên cục bộ, toàn cầu và tích hợp sẵn cũng như các không gian tên lồng nhau trong các đối tượng (trong các phương thức). Không gian tên hỗ trợ tính mô đun bằng cách ngăn xung đột đặt tên. Chẳng hạn, các hàm và được phân biệt bởi không gian tên của chúng. Không gian tên cũng hỗ trợ khả năng đọc và khả năng bảo trì bằng cách làm rõ mô-đun nào thực hiện chức năng nào. Chẳng hạn, viết hoặc làm rõ rằng các chức năng đó được thực hiện bởi các mô-đun và tương ứng

gói không gian tên

PEP 420 chỉ đóng vai trò là vật chứa cho các gói phụ. Các gói không gian tên có thể không có biểu diễn vật lý và cụ thể là không giống như vì chúng không có tệp

callable(argument1, argument2, ...)
44

Xem thêm

phạm vi lồng nhau

Khả năng tham chiếu đến một biến trong một định nghĩa kèm theo. Chẳng hạn, một hàm được xác định bên trong một hàm khác có thể tham chiếu đến các biến trong hàm bên ngoài. Lưu ý rằng các phạm vi lồng nhau theo mặc định chỉ hoạt động để tham khảo chứ không phải để gán. Các biến cục bộ đều đọc và ghi trong phạm vi trong cùng. Tương tự, các biến toàn cục đọc và ghi vào không gian tên toàn cầu. Cho phép ghi vào phạm vi bên ngoài

lớp học kiểu mới

Tên cũ cho hương vị của các lớp hiện được sử dụng cho tất cả các đối tượng lớp. Trong các phiên bản Python trước đó, chỉ các lớp kiểu mới mới có thể sử dụng các tính năng linh hoạt, mới hơn của Python như , bộ mô tả, thuộc tính,

callable(argument1, argument2, ...)
47, phương thức lớp và phương thức tĩnh

mục tiêu

Bất kỳ dữ liệu nào có trạng thái (thuộc tính hoặc giá trị) và hành vi được xác định (phương thức). Cũng là lớp cơ sở cuối cùng của bất kỳ

bưu kiện

Một Python có thể chứa các mô-đun con hoặc đệ quy, các gói con. Về mặt kỹ thuật, một gói là một mô-đun Python có thuộc tính

complex(3, 5)
complex(*(3, 5))
69

Xem thêm và

tham số

Một thực thể được đặt tên trong định nghĩa (hoặc phương thức) chỉ định một (hoặc trong một số trường hợp, đối số) mà hàm có thể chấp nhận. Có năm loại tham số

  • vị trí hoặc từ khóa. chỉ định một đối số có thể được thông qua hoặc dưới dạng. Đây là loại tham số mặc định, ví dụ foo và bar trong phần sau

    def func(foo, bar=None): ...
    

  • chỉ vị trí. chỉ định một đối số chỉ có thể được cung cấp theo vị trí. Các tham số chỉ vị trí có thể được xác định bằng cách bao gồm một ký tự

    callable(argument1, argument2, ...)
    
    49 trong danh sách tham số của định nghĩa hàm sau chúng, ví dụ: posonly1 và posonly2 trong phần sau

    def func(posonly1, posonly2, /, positional_or_keyword): ...
    

  • chỉ từ khóa. chỉ định một đối số chỉ có thể được cung cấp bởi từ khóa. Các tham số chỉ có từ khóa có thể được xác định bằng cách bao gồm một tham số var-vị trí duy nhất hoặc

    def sum_two_numbers(a: int, b: int) -> int:
       return a + b
    
    0 trống trong danh sách tham số của định nghĩa hàm trước chúng, ví dụ: kw_only1 và kw_only2 trong phần sau

    complex(3, 5)
    complex(*(3, 5))
    
    0

  • var-vị trí. chỉ định rằng có thể cung cấp một chuỗi đối số vị trí tùy ý (ngoài bất kỳ đối số vị trí nào đã được các tham số khác chấp nhận). Một tham số như vậy có thể được xác định bằng cách đặt trước tên tham số bằng ____________0, ví dụ: args trong phần sau

    complex(3, 5)
    complex(*(3, 5))
    
    1

  • từ khóa var. chỉ định rằng có thể cung cấp nhiều đối số từ khóa tùy ý (ngoài bất kỳ đối số từ khóa nào đã được các tham số khác chấp nhận). Một tham số như vậy có thể được xác định bằng cách đặt trước tên tham số bằng ____________6, ví dụ như kwargs trong ví dụ trên

Các tham số có thể chỉ định cả đối số tùy chọn và bắt buộc, cũng như giá trị mặc định cho một số đối số tùy chọn

Xem thêm mục thuật ngữ, câu hỏi thường gặp về , lớp, phần và PEP 362

mục nhập đường dẫn

Một vị trí duy nhất mà tư vấn tìm các mô-đun để nhập

công cụ tìm mục nhập đường dẫn

A được trả về bởi một hàm có thể gọi được trên (i. e. a ) biết cách xác định vị trí các mô-đun được cung cấp

Xem các phương pháp mà công cụ tìm mục nhập đường dẫn thực hiện

móc vào đường dẫn

Có thể gọi được trên danh sách

callable(argument1, argument2, ...)
56 trả về a nếu nó biết cách tìm các mô-đun trên một cụ thể

công cụ tìm đường dẫn

Một trong những mặc định tìm kiếm một mô-đun

đối tượng giống như đường dẫn

Một đối tượng đại diện cho đường dẫn hệ thống tệp. Một đối tượng giống như đường dẫn là một hoặc đối tượng đại diện cho một đường dẫn hoặc một đối tượng thực hiện giao thức. Một đối tượng hỗ trợ giao thức có thể được chuyển đổi thành một hoặc đường dẫn hệ thống tệp bằng cách gọi hàm; . Được giới thiệu bởi PEP 519

PEP

Đề xuất cải tiến Python. PEP là một tài liệu thiết kế cung cấp thông tin cho cộng đồng Python hoặc mô tả một tính năng mới cho Python hoặc các quy trình hoặc môi trường của nó. PEP nên cung cấp thông số kỹ thuật ngắn gọn và cơ sở lý luận cho các tính năng được đề xuất

PEP được dự định là cơ chế chính để đề xuất các tính năng mới quan trọng, để thu thập ý kiến ​​đóng góp của cộng đồng về một vấn đề và để ghi lại các quyết định thiết kế đã được đưa vào Python. Tác giả PEP chịu trách nhiệm xây dựng sự đồng thuận trong cộng đồng và ghi lại các ý kiến ​​bất đồng

Xem PEP 1

phần

Một tập hợp các tệp trong một thư mục (có thể được lưu trữ trong tệp zip) đóng góp vào gói không gian tên, như được định nghĩa trong PEP 420

đối số vị trí

Thấy

API tạm thời

API tạm thời là API đã bị loại trừ một cách có chủ ý khỏi các đảm bảo về khả năng tương thích ngược của thư viện tiêu chuẩn. Mặc dù những thay đổi lớn đối với các giao diện như vậy không được mong đợi, miễn là chúng được đánh dấu tạm thời, những thay đổi không tương thích ngược (lên đến và bao gồm cả việc loại bỏ giao diện) có thể xảy ra nếu các nhà phát triển cốt lõi cho là cần thiết. Những thay đổi như vậy sẽ không được thực hiện một cách vô cớ – chúng sẽ chỉ xảy ra nếu các lỗi cơ bản nghiêm trọng được phát hiện đã bị bỏ sót trước khi đưa vào API

Ngay cả đối với các API tạm thời, các thay đổi không tương thích ngược được coi là “giải pháp cuối cùng” - mọi nỗ lực sẽ vẫn được thực hiện để tìm giải pháp tương thích ngược cho bất kỳ vấn đề nào đã xác định

Quá trình này cho phép thư viện tiêu chuẩn tiếp tục phát triển theo thời gian mà không bị khóa các lỗi thiết kế có vấn đề trong thời gian dài. Xem PEP 411 để biết thêm chi tiết

gói tạm thời

Thấy

Trăn 3000

Biệt hiệu cho Python 3. x (được đặt ra từ lâu khi việc phát hành phiên bản 3 là điều gì đó trong tương lai xa. ) Điều này cũng được viết tắt là "Py3k"

Pythonic

Một ý tưởng hoặc đoạn mã theo sát các thành ngữ phổ biến nhất của ngôn ngữ Python, thay vì triển khai mã bằng các khái niệm phổ biến cho các ngôn ngữ khác. Ví dụ: một thành ngữ phổ biến trong Python là lặp qua tất cả các phần tử của một lần lặp bằng cách sử dụng một câu lệnh. Nhiều ngôn ngữ khác không có kiểu cấu trúc này, vì vậy những người không quen thuộc với Python đôi khi sử dụng bộ đếm số để thay thế

complex(3, 5)
complex(*(3, 5))
2

Trái ngược với phương pháp Pythonic sạch hơn

complex(3, 5)
complex(*(3, 5))
3

tên đủ điều kiện

Tên có dấu chấm hiển thị "đường dẫn" từ phạm vi chung của mô-đun đến một lớp, hàm hoặc phương thức được xác định trong mô-đun đó, như được định nghĩa trong PEP 3155. Đối với các hàm và lớp cấp cao nhất, tên đủ điều kiện giống với tên của đối tượng

complex(3, 5)
complex(*(3, 5))
4

Khi được sử dụng để chỉ các mô-đun, tên đầy đủ có nghĩa là toàn bộ đường dẫn chấm đến mô-đun, bao gồm bất kỳ gói cha nào, e. g.

callable(argument1, argument2, ...)
69

complex(3, 5)
complex(*(3, 5))
5

số tham chiếu

Số lượng tham chiếu đến một đối tượng. Khi số lượng tham chiếu của một đối tượng giảm xuống 0, nó sẽ bị hủy bỏ. Việc đếm tham chiếu thường không hiển thị đối với mã Python, nhưng nó là yếu tố chính của quá trình triển khai. Các lập trình viên có thể gọi hàm để trả về số tham chiếu cho một đối tượng cụ thể

gói thường xuyên

Truyền thống , chẳng hạn như thư mục chứa tệp

callable(argument1, argument2, ...)
44

Xem thêm

__slots__

Một khai báo bên trong một lớp tiết kiệm bộ nhớ bằng cách khai báo trước không gian cho các thuộc tính cá thể và loại bỏ từ điển cá thể. Mặc dù phổ biến, nhưng kỹ thuật này hơi khó để thực hiện đúng và tốt nhất là dành riêng cho các trường hợp hiếm hoi khi có số lượng lớn phiên bản trong một ứng dụng quan trọng về bộ nhớ

sự liên tiếp

Một hỗ trợ truy cập phần tử hiệu quả bằng cách sử dụng các chỉ số số nguyên thông qua phương thức đặc biệt

complex(3, 5)
complex(*(3, 5))
78 và xác định một phương thức
callable(argument1, argument2, ...)
73 trả về độ dài của chuỗi. Một số loại trình tự dựng sẵn là , , và. Lưu ý rằng cũng hỗ trợ
complex(3, 5)
complex(*(3, 5))
78 và
callable(argument1, argument2, ...)
73, nhưng được coi là một ánh xạ hơn là một chuỗi vì tra cứu sử dụng các khóa tùy ý thay vì số nguyên

Lớp cơ sở trừu tượng định nghĩa một giao diện phong phú hơn nhiều, vượt xa chỉ

complex(3, 5)
complex(*(3, 5))
78 và
callable(argument1, argument2, ...)
73, thêm vào
callable(argument1, argument2, ...)
84,
callable(argument1, argument2, ...)
85,
callable(argument1, argument2, ...)
86 và
callable(argument1, argument2, ...)
87. Các loại triển khai giao diện mở rộng này có thể được đăng ký rõ ràng bằng cách sử dụng

thiết lập sự hiểu biết

Một cách nhỏ gọn để xử lý tất cả hoặc một phần của các phần tử trong một lần lặp và trả về một tập hợp có kết quả.

callable(argument1, argument2, ...)
89 tạo tập hợp các chuỗi
callable(argument1, argument2, ...)
90. Thấy

công văn duy nhất

Một hình thức gửi đi trong đó việc triển khai được chọn dựa trên loại đối số đơn lẻ

lát cắt

Một đối tượng thường chứa một phần của một. Một lát cắt được tạo bằng cách sử dụng ký hiệu chỉ số dưới,

callable(argument1, argument2, ...)
91 với dấu hai chấm giữa các số khi một số được đưa ra, chẳng hạn như trong
callable(argument1, argument2, ...)
92. Ký hiệu dấu ngoặc (chỉ số) sử dụng các đối tượng bên trong

phương pháp đặc biệt

Một phương thức được Python gọi ngầm để thực thi một thao tác nhất định trên một loại, chẳng hạn như phép cộng. Các phương thức như vậy có tên bắt đầu và kết thúc bằng dấu gạch dưới kép. Các phương pháp đặc biệt được ghi lại trong

tuyên bố

Một câu lệnh là một phần của bộ (một “khối” mã). Một câu lệnh là một hoặc một trong nhiều cấu trúc có từ khóa, chẳng hạn như , hoặc

tài liệu tham khảo mạnh mẽ

Trong API C của Python, một tham chiếu mạnh là một tham chiếu đến một đối tượng làm tăng số lượng tham chiếu của đối tượng khi nó được tạo và giảm số lượng tham chiếu của đối tượng khi nó bị xóa

Chức năng này có thể được sử dụng để tạo một tham chiếu mạnh đến một đối tượng. Thông thường, hàm phải được gọi trên tham chiếu mạnh trước khi thoát khỏi phạm vi của tham chiếu mạnh, để tránh rò rỉ một tham chiếu

Xem thêm

mã hóa văn bản

Một chuỗi trong Python là một chuỗi các điểm mã Unicode (trong phạm vi

callable(argument1, argument2, ...)
99–
def f(arg):
    ...
f = staticmethod(f)

@staticmethod
def f(arg):
    ...
00). Để lưu trữ hoặc truyền một chuỗi, nó cần được đánh số thứ tự thành một chuỗi byte

Nối tiếp một chuỗi thành một chuỗi byte được gọi là "mã hóa" và tạo lại chuỗi từ chuỗi byte được gọi là "giải mã"

Có nhiều cách tuần tự hóa văn bản khác nhau, được gọi chung là “mã hóa văn bản”

tập tin văn bản

Có thể đọc và viết các đối tượng. Thông thường, một tệp văn bản thực sự truy cập vào luồng dữ liệu hướng byte và tự động xử lý. Ví dụ về tệp văn bản là tệp được mở ở chế độ văn bản (_______2_______02 hoặc

def f(arg):
    ...
f = staticmethod(f)

@staticmethod
def f(arg):
    ...
03), , , và các phiên bản của

Xem thêm đối tượng tệp có thể đọc và ghi

chuỗi trích dẫn ba lần

Một chuỗi bị ràng buộc bởi ba trường hợp của dấu ngoặc kép (”) hoặc dấu nháy đơn (‘). Mặc dù chúng không cung cấp bất kỳ chức năng nào không có sẵn với chuỗi trích dẫn đơn, nhưng chúng rất hữu ích vì một số lý do. Chúng cho phép bạn bao gồm các dấu ngoặc đơn và dấu ngoặc kép không thoát trong một chuỗi và chúng có thể trải rộng trên nhiều dòng mà không cần sử dụng ký tự tiếp tục, làm cho chúng đặc biệt hữu ích khi viết các chuỗi tài liệu

loại

Loại đối tượng Python xác định loại đối tượng đó là gì; . Loại của đối tượng có thể truy cập dưới dạng thuộc tính của nó hoặc có thể được truy xuất bằng

def f(arg):
    ...
f = staticmethod(f)

@staticmethod
def f(arg):
    ...
08

gõ bí danh

Một từ đồng nghĩa cho một loại, được tạo bằng cách gán loại cho một mã định danh

Loại bí danh rất hữu ích để đơn giản hóa. Ví dụ

complex(3, 5)
complex(*(3, 5))
6

có thể được làm cho dễ đọc hơn như thế này

complex(3, 5)
complex(*(3, 5))
7

Xem và PEP 484, mô tả chức năng này

gõ gợi ý

Một chỉ định loại dự kiến ​​cho một biến, thuộc tính lớp hoặc tham số chức năng hoặc giá trị trả về

Gợi ý loại là tùy chọn và không được Python thực thi nhưng chúng rất hữu ích cho các công cụ phân tích loại tĩnh và hỗ trợ các IDE hoàn thành và tái cấu trúc mã

Nhập các gợi ý về biến toàn cục, thuộc tính lớp và hàm, nhưng không phải biến cục bộ, có thể được truy cập bằng cách sử dụng

Xem và PEP 484, mô tả chức năng này

dòng mới phổ quát

Một cách diễn giải các luồng văn bản trong đó tất cả những điều sau đây được công nhận là kết thúc một dòng. quy ước cuối dòng Unix

def f(arg):
    ...
f = staticmethod(f)

@staticmethod
def f(arg):
    ...
12, quy ước Windows
def f(arg):
    ...
f = staticmethod(f)

@staticmethod
def f(arg):
    ...
13 và quy ước Macintosh cũ
def f(arg):
    ...
f = staticmethod(f)

@staticmethod
def f(arg):
    ...
14. Xem PEP 278 và PEP 3116, cũng như để sử dụng thêm

chú thích biến

Thuộc tính của một biến hoặc một lớp

Khi chú thích một biến hoặc thuộc tính lớp, phép gán là tùy chọn

complex(3, 5)
complex(*(3, 5))
8

Chú thích biến thường được sử dụng cho. ví dụ: biến này dự kiến ​​​​sẽ lấy giá trị

complex(3, 5)
complex(*(3, 5))
9

Cú pháp chú thích biến được giải thích trong phần

Xem , PEP 484 và PEP 526, mô tả chức năng này. Ngoài ra, hãy xem các phương pháp hay nhất khi làm việc với chú thích

Môi trường ảo

Môi trường thời gian chạy được cô lập hợp tác cho phép người dùng và ứng dụng Python cài đặt và nâng cấp các gói phân phối Python mà không can thiệp vào hành vi của các ứng dụng Python khác đang chạy trên cùng một hệ thống

Xem thêm

máy ảo

Một máy tính được xác định hoàn toàn trong phần mềm. Máy ảo của Python thực thi phát ra bởi trình biên dịch bytecode

Thiền của Python

Liệt kê các nguyên tắc và triết lý thiết kế Python hữu ích trong việc hiểu và sử dụng ngôn ngữ này. Có thể tìm thấy danh sách này bằng cách gõ “______2_______18” tại dấu nhắc tương tác

Chế độ tệp nhị phân để chắp thêm là gì?

Trong fopen (), chế độ gắn (a) vào tệp nhị phân (b) là ab . " ab" là "chắp thêm; mở hoặc tạo tệp nhị phân để ghi ở cuối tệp".

Làm cách nào để chuyển đổi tệp thành nhị phân trong Python?

Khoa học dữ liệu thực tế sử dụng Python . Để mở tệp ở chế độ nhị phân, khi chỉ định một chế độ, hãy thêm 'b' vào đó .

Làm cách nào để tạo tệp nhị phân?

Tạo một. .
1) Đầu tiên, vào Tools > Board và chọn đúng board (ví dụ: ESP32 DEVKIT DOIT Board)
2) Lưu bản phác thảo của bạn
3) Để tạo ra một. bin từ bản phác thảo của bạn, hãy vào Phác thảo > Xuất tệp nhị phân đã biên dịch
4) Nên tạo một tệp mới trên thư mục phác thảo

Tệp nhị phân trong Python là gì?

Tệp nhị phân là tệp có nội dung ở định dạng nhị phân bao gồm một chuỗi byte liên tiếp, mỗi byte dài 8 bit. The content must be interpreted by a program or a hardware processor that understands in advance exactly how that content is formatted and how to read the data.