Việc chuyển một từ điển để hoạt động trong Python có giống như chuyển một tham chiếu trong C++ không? . từ AskLập trình
Dấu nhắc Python mặc định của shell 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
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 ; . Nhìn thấy
lớp cơ sở trừu tượngCá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íchNhã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 các biến cục bộ không thể được truy cập trong thời gian chạy, nhưng các 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
def f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...4 của mô-đun, lớp và hàm tương ứng
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ậnMộ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 lời gọi hàm hoặc được truyền dưới dạng giá trị trong từ điển trướcdef 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ớicomplex[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
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 saucallable[argument1, argument2, ...]
1
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 + b4 và
def sum_two_numbers[a: int, b: int] -> int: return a + b5. Được giới thiệu bởi PEP 492má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
bộ 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
callable[argument1, argument2, ...]42 sẽ trả về một đối tượng có thể chờ đợi, đối tượng này 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
callable[argument1, argument2, ...]42, nó sẽ tiếp tục ở nơi nó dừng lại. Xem PEP 492 và PEP 525lặ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
callable[argument1, argument2, ...]47 của nó. Được giới thiệu bởi PEP 492trình lặp không đồng bộ
Một đối tượng triển khai các phương thức
callable[argument1, argument2, ...]47 và
callable[argument1, argument2, ...]42.
callable[argument1, argument2, ...]90 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
callable[argument1, argument2, ...]42 của trình lặp không đồng bộ cho đến khi nó phát sinh một ngoại lệ. Được giới thiệu bởi PEP 492thuộ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ờ đợiMộ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
callable[argument1, argument2, ...]97. Xem thêm PEP 492BDFL
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ânA 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 [________ 198, ________ 199 hoặc ________ 240], ________ 241,
def f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...42 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ượnTrong 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ư byteMộ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ã byteMã 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 f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...78 để 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 đượcCó 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ạiMộ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
lớpMộ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ớpMộ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ứcMộ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 f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...90], thường được viết là
def f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...91 trong toán học hoặc
def f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...92 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 f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...94. Để 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ànquả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 f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...98 và
def f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...99. Xem PEP 343biến bối 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. Nhìn thấy
tiếp giápMộ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àyCoroutines 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 coroutineHà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
CPythonViệ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ữ “Python” đượ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 và IronPython
người trang tríMột hàm trả về một hàm khác, thường được áp dụng dưới dạng chuyển đổi hàm bằng cú pháp
callable[argument1, argument2, ...]106. 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
callable[argument1, argument2, ...]109,
callable[argument1, argument2, ...]110 hoặc
callable[argument1, argument2, ...]111. 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ểnMộ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
callable[argument1, argument2, ...]112 và
callable[argument1, argument2, ...]113. Được gọi là hàm băm trong Perlhiể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ả.
callable[argument1, argument2, ...]114 tạo một từ điển chứa khóa
callable[argument1, argument2, ...]115 được ánh xạ tới giá trị
callable[argument1, argument2, ...]116. Nhìn thấyxem 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
callable[argument1, argument2, ...]120. Nhìn thấychuỗ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. Mặc dù bị bỏ qua khi bộ được thực thi, nhưng nó được trình biên dịch nhận ra và đưa vào thuộc tính
callable[argument1, argument2, ...]121 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
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
EAFPXin 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
biểu hiệnMộ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ộngMộ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 fCác chuỗi ký tự có tiền tố là
callable[argument1, argument2, ...]128 hoặc
callable[argument1, argument2, ...]129 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ư
callable[argument1, argument2, ...]130 hoặc
callable[argument1, argument2, ...]131] cho 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 tinMột từ đồng nghĩa với
mã hóa hệ thống tập tin và xử lý lỗiMã 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
callable[argument1, argument2, ...]137. xem và các thành viên của
Xem thêm
công cụ tìmMộ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ầngPhé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à
callable[argument1, argument2, ...]143. Ví dụ: biểu thức
callable[argument1, argument2, ...]144 ước tính thành
callable[argument1, argument2, ...]145 trái ngược với giá trị
callable[argument1, argument2, ...]146 được trả về bởi phép chia thực float. Lưu ý rằng ________ 1147 là ________ 1148 vì đó là ________ 1149 được làm tròn xuống. Xem PEP 238hà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ăngMộ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 ,
callable[argument1, argument2, ...]152, 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
callable[argument1, argument2, ...]4thu 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ệnMộ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ệnMộ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ạoMộ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 là mệnh đề
callable[argument1, argument2, ...]158 xác định biến vòng lặp, phạm vi và mệnh đề
callable[argument1, argument2, ...]159 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
callable[argument1, argument2, ...]9chứ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 chungA 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
GILNhìn thấy
khóa phiên dịch viên toàn cầuCơ 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. Việc 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ămTệ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ó. Nhìn thấy
có thể bămMộ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 thời gian tồn tại của nó [nó cần một phương thức
callable[argument1, argument2, ...]112] 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
callable[argument1, argument2, ...]113]. 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ỗiMô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ếnMộ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ậpDanh 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
callable[argument1, argument2, ...]169 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ẩuMột đối tượng vừa tìm vừa tải một mô-đun;
tương tácPython 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
callable[argument1, argument2, ...]170 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 các ý tưởng mới hoặc kiểm tra các mô-đun và gói [hãy nhớ
callable[argument1, argument2, ...]171]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ịchKhi được yêu cầu tắt, trình thông dịch Python sẽ bước vào một giai đoạn đặc biệt, nơi nó giải phóng dần dần 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
callable[argument1, argument2, ...]172 hoặc tập lệnh đang chạy đã thực thi xonglặ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
callable[argument1, argument2, ...]177 hoặc bằng phương thức
callable[argument1, argument2, ...]178 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
callable[argument1, argument2, ...]158 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
callable[argument1, argument2, ...]185 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
callable[argument1, argument2, ...]177 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 nhất quán áp dụng yêu cầu mà trình vòng lặp xác định
callable[argument1, argument2, ...]177chứ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
Nhìn thấy
lamdaMộ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 hàm lambda là
callable[argument1, argument2, ...]10LBYL
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 EAFPmã 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 ngôn ngữ
Xem thêm
danh sáchMộ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áchMộ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ếtphươ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 metaA đượ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ớpLớ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ápMột hàm được định nghĩa bên trong thân lớp. Nếu được gọi là 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ô-đunMộ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ô-đunMộ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
MRONhìn thấy
có thể thay đổiCá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ênThuậ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à
def f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...4
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ênNơi mà một biến được lưu trữ. 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ênPEP 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 nhauKhả 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ớiTê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ĩnhsự vật
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ệnMộ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
callable[argument1, argument2, ...]169
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 f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...
7
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 saudef f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...
9
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ần 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 saucallable[argument1, argument2, ...]
10var-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
def sum_two_numbers[a: int, b: int] -> int: return a + b
0, ví dụ: args trong phần saucallable[argument1, argument2, ...]
11từ 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 thêm vào trước tên tham số bằng
def f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...
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ẫnMộ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ẫnA đượ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ẫnCó thể gọi được trong 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ẫnMộ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ầnMộ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íNhìn thấy
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ờiNhìn thấy
Trăn 3000Biệ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"
PythonicMộ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ách sử dụ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ế
callable[argument1, argument2, ...]12
Trái ngược với phương pháp Pythonic sạch hơn
callable[argument1, argument2, ...]13tê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
callable[argument1, argument2, ...]14
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
callable[argument1, argument2, ...]15số 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ênTruyề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ự phối hợpMộ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
callable[argument1, argument2, ...]178 và xác định 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ợ
callable[argument1, argument2, ...]178 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 ra ngoài chỉ
callable[argument1, argument2, ...]178 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ụngthiế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. Nhìn thấycô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ắtMộ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 trongphươ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
bản tường trìnhMộ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ảnMộ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ảnCó 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à các tệp được mở ở chế độ văn bản [
def f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...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ầnMộ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 hìnhLoại đối tượng Python xác định loại đối tượng đó là gì; . Có thể truy cập loại đối tượng dưới dạng thuộc tính của nó hoặc có thể truy xuất bằng
def f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...08gõ 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ụ
callable[argument1, argument2, ...]16
có thể được làm cho dễ đọc hơn như thế này
callable[argument1, argument2, ...]17
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átMộ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êmchú 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
callable[argument1, argument2, ...]18
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ị
callable[argument1, argument2, ...]19
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 ảoMôi trường thời gian chạy bị 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 chạy trên cùng một hệ thống
Xem thêm
máy ảoMộ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 PythonLiệ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õ “
def f[arg]: ... f = staticmethod[f] @staticmethod def f[arg]: ...18” tại dấu nhắc tương tác