Chuyển từ điển python qua tham chiếu
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 Show callable(argument1, argument2, ...)1¶ có thể tham khảo
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 là callable(argument1, argument2, ...)3; . Xem 2to3 — Dịch mã Python 2 sang 3 tự động . lớp cơ sở trừu tượng¶ Các lớp cơ sở trừu tượng bổ sung cho kiểu gõ vịt bằng cách cung cấp một cách để xác định giao diện khi các kỹ thuật khác như callable(argument1, argument2, ...)5 sẽ vụng về hoặc sai một cách tinh vi (vì . 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 callable(argument1, argument2, ...)6 và callable(argument1, argument2, ...)7; . Python đi kèm với nhiều ABC tích hợp sẵn cho cấu trúc dữ liệu (trong mô-đun callable(argument1, argument2, ...)9), số (trong mô-đun def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...0), luồng (trong mô-đun def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...1), trình tìm và tải nhập (trong mô-đun def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...2). Bạn có thể tạo ABC của riêng mình với mô-đun callable(argument1, argument2, ...)8. magic methods). ABCs introduce virtual subclasses, which are classes that don’t inherit from a class but are still recognized by callable(argument1, argument2, ...)6 and callable(argument1, argument2, ...)7; see the callable(argument1, argument2, ...)8 module documentation. Python comes with many built-in ABCs for data structures (in the callable(argument1, argument2, ...)9 module), numbers (in the def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...0 module), streams (in the def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...1 module), import finders and loaders (in the def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...2 module). You can create your own ABCs with the callable(argument1, argument2, ...)8 module.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ố hàm hoặc giá trị trả về, được sử dụng theo quy ước dưới dạng gợi ý loại . 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 def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...4 của mô-đun, lớp và hàm tương ứng Xem chú thích biến , chú thích hàm , PEP 484 . Ngoài ra, hãy xem Các phương pháp hay nhất về chú thích để biết 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 một hàm (hoặc phương thức . Có hai loại lập luận.
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 Cuộc gọi để 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ố; . Cũng xem mục tham số , câu hỏi thường gặp về sự khác biệt giữa đối số và tham số< . , and 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 thấy trong câu lệnh callable(argument1, argument2, ...)03 bằng cách xác định các phương thức callable(argument1, argument2, ...)04 và callable(argument1, argument2, ...)05. Đượ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 trình lặp trình tạo không đồng bộ . Nó trông giống như một hàm coroutine được xác định bằng callable(argument1, argument2, ...)06 ngoại trừ việc nó chứa các biểu thức callable(argument1, argument2, ...)07 để tạo ra một chuỗi các giá trị có thể sử dụng được trong vòng lặp callable(argument1, argument2, ...)08. 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ồ Một hàm tạo không đồng bộ có thể chứa các biểu thức callable(argument1, argument2, ...)09 cũng như các câu lệnh callable(argument1, argument2, ...)08 và callable(argument1, argument2, ...)03bộ lặp máy phát điện không đồng bộ¶ Một đối tượng được tạo bởi một hàm tạo không đồng bộ . Đây là trình lặp không đồng bộ mà khi được gọi bằng phương thức callable(argument1, argument2, ...)32 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 khi . Mỗi callable(argument1, argument2, ...)07 tạm thời ngừ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â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, ...)32, nó sẽ tiếp tục ở nơi nó dừng lại. Xem PEP 492 và PEP 525iterable không đồng bộ¶ Một đối tượng, có thể được sử dụng trong câu lệnh callable(argument1, argument2, ...)08. Phải trả về một trình lặp không đồng bộ từ phương thức callable(argument1, argument2, ...)37 của nó. Được giới thiệu bởi PEP 492. iterator không đồng bộ¶ Một đối tượng triển khai các phương thức callable(argument1, argument2, ...)37 và callable(argument1, argument2, ...)32. callable(argument1, argument2, ...)10 phải trả về một đối tượng awaitable . callable(argument1, argument2, ...)08 giải quyết các đối tượng chờ được trả về bởi phương thức callable(argument1, argument2, ...)32 của trình lặp không đồng bộ cho đến khi nó tăng ngoại lệ callable(argument1, argument2, ...)13. Đượ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à số nhận dạng như được xác định bởi Số nhận dạng và từ khóa , chẳng hạn như sử dụng callable(argument1, argument2, ...)14, . 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 callable(argument1, argument2, ...)15. chờ đợi¶ Một đối tượng có thể được sử dụng trong biểu thức callable(argument1, argument2, ...)09. Có thể là một coroutine hoặc một đối tượng có phương thức callable(argument1, argument2, ...)17. 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 đối tượng tệp có thể đọc và ghi đối tượng dạng byte. Examples of binary files are files opened in binary mode ( callable(argument1, argument2, ...)18, callable(argument1, argument2, ...)19 or callable(argument1, argument2, ...)10), callable(argument1, argument2, ...)11, callable(argument1, argument2, ...)12, and instances of callable(argument1, argument2, ...)13 and callable(argument1, argument2, ...)14. Xem thêm tệp văn bản để biết đối tượng tệp có thể đọc và ghi đối tượng callable(argument1, argument2, ...)15. 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ụ: bộ sưu tập rác có thể xóa tham chiếu mạnh cuối cùng của đối tượng và do đó hủy đối tượng đó. Bạn nên gọi callable(argument1, argument2, ...)16 trên tham chiếu mượn để chuyển đổi nó thành tham chiếu mạnh in-place, except when the object cannot be destroyed before the last usage of the borrowed reference. The callable(argument1, argument2, ...)17 function can be used to create a new tham chiếu mạnh mới. đối tượng dạng byte¶ Một đối tượng hỗ trợ Giao thức bộ đệm và có thể xuất C- liên tục buffer. This includes all callable(argument1, argument2, ...)18, callable(argument1, argument2, ...)19, and callable(argument1, argument2, ...)10 objects, as well as many common callable(argument1, argument2, ...)11 objects. Bytes-like objects can be used for various operations that work with binary data; these include compression, saving to a binary file, and sending over a socket. 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”. Các đối tượng bộ đệm có thể thay đổi ví dụ bao gồm callable(argument1, argument2, ...)19 và một callable(argument1, argument2, ...)11 của một callable(argument1, argument2, ...)19. 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 callable(argument1, argument2, ...)18 để 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áy ảo 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. Bạn có thể tìm thấy danh sách hướng dẫn mã byte trong tài liệu dành cho mô-đun dis . 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 đối số ), với cú pháp sau. callable(argument1, argument2, ...) A hàm và bằng cách mở rộng một phương thức , . Một thể hiện của một lớp triển khai phương thức callable(argument1, argument2, ...)19 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 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 callable(argument1, argument2, ...)20), thường được viết là callable(argument1, argument2, ...)21 trong toán học hoặc callable(argument1, argument2, ...)22 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. , callable(argument1, argument2, ...)24. Để có quyền truy cập vào các phần tương đương phức tạp của mô-đun callable(argument1, argument2, ...)25, hãy sử dụng callable(argument1, argument2, ...)26. 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àntrình quản lý ngữ cảnh¶ Một đối tượng kiểm soát môi trường được thấy trong câu lệnh callable(argument1, argument2, ...)27 bằng cách xác định các phương thức callable(argument1, argument2, ...)28 và callable(argument1, argument2, ...)29. Xem PEP 343biế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. Xem callable(argument1, argument2, ...)300tiế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 quy trình¶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 câu lệnh callable(argument1, argument2, ...)06. Xem thêm PEP 492chức năng coroutine¶ Một hàm trả về một đối tượng coroutine . Một hàm coroutine có thể được định nghĩa bằng câu lệnh callable(argument1, argument2, ...)06 và có thể chứa các từ khóa callable(argument1, argument2, ...)09, callable(argument1, argument2, ...)08 và callable(argument1, argument2, ...)03. 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 dưới dạng chuyển đổi hàm bằng cú pháp callable(argument1, argument2, ...)306. Các ví dụ phổ biến cho người trang trí là callable(argument1, argument2, ...)307 và callable(argument1, argument2, ...)308 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ự cũng tồn tại đối với các lớp, nhưng ít được sử dụng hơn ở đó. Xem tài liệu về định nghĩa hàm và định nghĩa lớp để biết thêm về trình trang trí. mô tả¶Bất kỳ đối tượng nào định nghĩa các phương thức callable(argument1, argument2, ...)309, callable(argument1, argument2, ...)310 hoặc callable(argument1, argument2, ...)311. 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ề phương pháp của bộ mô tả, hãy xem Triển khai bộ mô tả hoặc Hướng dẫn cách thực hiện bộ mô tả< . . 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 callable(argument1, argument2, ...)312 và callable(argument1, argument2, ...)313. Đượ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ề một từ điển cùng với kết quả. callable(argument1, argument2, ...)314 tạo một từ điển chứa khóa callable(argument1, argument2, ...)315 được ánh xạ tới giá trị callable(argument1, argument2, ...)316. Xem Hiển thị cho danh sách, bộ và từ điển . xem từ điển¶ Các đối tượng được trả về từ callable(argument1, argument2, ...)317, callable(argument1, argument2, ...)318 và callable(argument1, argument2, ...)319 được gọi là chế độ 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, ...)320. Xem Đối tượng xem từ điển . 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. Mặc dù bị bỏ qua khi bộ phần mềm đượ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, ...)321 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 callable(argument1, argument2, ...)322 hoặc callable(argument1, argument2, ...)6. (Tuy nhiên, xin lưu ý rằng cách gõ vịt có thể được bổ sung bằng các lớp cơ sở trừu tượng . ) Thay vào đó, nó thường sử dụng các thử nghiệm callable(argument1, argument2, ...)5 hoặc lập trình EAFP . 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 câu lệnh callable(argument1, argument2, ...)325 và callable(argument1, argument2, ...)326. Kỹ thuật này trái ngược với kiểu LBYL phổ biến đối với nhiều ngôn ngữ khác như C. sự biểu lộ¶ Một đoạn cú pháp có thể được đánh giá 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. Cũng có câu lệnh không thể dùng làm biểu thức, chẳng hạn như callable(argument1, argument2, ...)327. 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ự chuỗi có tiền tố là callable(argument1, argument2, ...)328 hoặc callable(argument1, argument2, ...)329 thường được gọi là “chuỗi f”, viết tắt của các chuỗi ký tự được định dạng . 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, ...)330 hoặc callable(argument1, argument2, ...)331) 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. thô tệp nhị phân , đệm tệp nhị phân và text files. Their interfaces are defined in the def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...1 module. The canonical way to create a file object is by using the callable(argument1, argument2, ...)333 function.đối tượng giống như tệp¶ Từ đồng nghĩa với đối tượng tệp . mã hóa hệ thống tập tin và trình 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 callable(argument1, argument2, ...)334 Các hàm callable(argument1, argument2, ...)335 và callable(argument1, argument2, ...)336 có thể được sử dụng để nhận mã hóa hệ thống tệp và trình xử lý lỗi Trình xử lý lỗi và mã hóa hệ thống tệp filesystem encoding and error handler được định cấu hình khi khởi động Python bằng hàm callable(argument1, argument2, ...)337. xem các thành viên của callable(argument1, argument2, ...)338 và callable(argument1, argument2, ...)339 của callable(argument1, argument2, ...)340. Xem thêm mã hóa ngôn ngữ . công cụ tìm¶Một đối tượng cố gắng tìm trình tải cho mô-đun đang được nhập. Kể từ Python 3. 3, có hai loại công cụ tìm. công cụ tìm đường dẫn meta để sử dụng với callable(argument1, argument2, ...)341 và công cụ tìm mục nhập đường dẫn để sử dụng . Xem PEP 302, PEP 420 và PEP 451 để biết thêm chi tiết phân 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à callable(argument1, argument2, ...)343. Ví dụ: biểu thức callable(argument1, argument2, ...)344 ước tính thành callable(argument1, argument2, ...)345 trái ngược với callable(argument1, argument2, ...)346 được trả về bởi phép chia thực float. Lưu ý rằng callable(argument1, argument2, ...)347 là callable(argument1, argument2, ...)348 vì đó là callable(argument1, argument2, ...)349 được làm tròn xuống. Xem PEP 238chức năng¶ 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 truyền bằng 0 hoặc nhiều đối số có thể được sử dụng trong quá trình thực thi phần thân. Xem thêm tham số , phương pháp và Function definitions section. chú thích chức năng¶Một chú thích của tham số hàm hoặc giá trị trả về. Chú thích hàm thường được sử dụng cho gợi ý loại . ví dụ: hàm này được mong đợi nhận hai đối số callable(argument1, argument2, ...)350 và cũng được mong đợi có giá trị trả về callable(argument1, argument2, ...)350. callable(argument1, argument2, ...)0 Cú pháp chú thích hàm được giải thích trong phần Định nghĩa hàm . Xem chú thích biến 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 về chú thích để biết các phương pháp hay nhất khi làm việc với chú thích. __Tương lai__¶A tuyên bố tương lai , callable(argument1, argument2, ...)352, 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 tương lai của . Mô-đun callable(argument1, argument2, ...)353 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, ...)3thu 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 callable(argument1, argument2, ...)354máy phát điện¶ Một hàm trả về một trình lặp bộ tạo . 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 callable(argument1, argument2, ...)07 để 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 callable(argument1, argument2, ...)356. 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 hàm trình tạo . Mỗi callable(argument1, argument2, ...)07 tạm thời ngừ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â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 là mệnh đề callable(argument1, argument2, ...)358 xác định biến vòng lặp, phạm vi và mệnh đề callable(argument1, argument2, ...)359 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, ...)1chứ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 nhập bảng thuật ngữ công văn đơn lẻ , trình trang trí callable(argument1, argument2, ...)360 và PEP 443. loại chung¶ A loại có thể được tham số hóa; . Được sử dụng cho container class such as callable(argument1, argument2, ...)361 or callable(argument1, argument2, ...)362. Used for gợi ý nhập và chú thích . Để biết thêm chi tiết, hãy xem các loại bí danh chung , PEP 483, PEP 484, PEP 585 và mô-đun callable(argument1, argument2, ...)363. GIL¶ Xem khóa trình thông dịch chung . khóa phiên dịch toàn cầu¶Cơ chế được sử dụng bởi trình thông dịch CPython để đảm bảo rằng chỉ có một luồng thực thi Python mã byte . Đ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ư callable(argument1, argument2, ...)362) implicitly safe against concurrent access. Locking the entire interpreter makes it easier for the interpreter to be multi-threaded, at the expense of much of the parallelism afforded by multi-processor machines. 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ó. Xem Hủy hiệu lực mã byte được lưu trong bộ nhớ đệm . 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 thời gian tồn tại của nó (nó cần một phương thức callable(argument1, argument2, ...)312) 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, ...)313). 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ả họ đều so sánh không bằng nhau (ngoại trừ với chính họ) và giá trị băm của họ được lấy từ callable(argument1, argument2, ...)367 của họnhàn rỗi¶ Môi trường học tập và phát triển tích hợp cho Python. IDLE là môi trường trình biên dịch và trình biên 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 mục nhập đường dẫn ) được tìm kiếm bởi công cụ tìm dựa trên đường dẫn< . Trong quá trình nhập, danh sách các vị trí này thường đến từ callable(argument1, argument2, ...)368, but for subpackages it may also come from the parent package’s callable(argument1, argument2, ...)369 attribute.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ô-đun; . finder and loader object. 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 callable(argument1, argument2, ...)370 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ớ callable(argument1, argument2, ...)371)thông dịch¶ Python là ngôn ngữ được thông dị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ương tác . tắt trình thông 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 đó trình thông dịch 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 nội bộ quan trọng khác. Nó cũng thực hiện một số lệnh gọi tới trình thu gom rác . Đ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 bị tắt là do mô-đun callable(argument1, argument2, ...)372 hoặc tập lệnh đang chạy đã thực thi xongcó thể 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ư callable(argument1, argument2, ...)361, callable(argument1, argument2, ...)15 và callable(argument1, argument2, ...)375) và một số loại không theo trình tự như callable(argument1, argument2, ...)362, đối tượng tệp và đối tượng của . sequence semantics. Iterables có thể được sử dụng trong vòng lặp callable(argument1, argument2, ...)358 và ở nhiều nơi khác khi cần có trình tự ( callable(argument1, argument2, ...)380, callable(argument1, argument2, ...)381, …). 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 callable(argument1, argument2, ...)382, nó sẽ trả về một trình vòng 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 gọi callable(argument1, argument2, ...)382 hoặc tự xử lý các đối tượng iterable. Câu lệnh callable(argument1, argument2, ...)358 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 trình lặp , trình tự và generator.iterator¶ Một đối tượng đại diện cho một luồng dữ liệu. Các lệnh gọi lặp lại tới phương thức callable(argument1, argument2, ...)385 của iterator (hoặc chuyển nó tới hàm tích hợp sẵn callable(argument1, argument2, ...)356) 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ệ callable(argument1, argument2, ...)387 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, ...)385 của nó chỉ cần tăng lại callable(argument1, argument2, ...)387. Các trình lặp được yêu cầu phải có phương thức callable(argument1, argument2, ...)377 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ư callable(argument1, argument2, ...)361) tạo ra một trình vòng lặp mới mỗi khi bạn chuyển nó đến hàm callable(argument1, argument2, ...)382 hoặc sử dụng nó trong vòng lặp callable(argument1, argument2, ...)358. 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 Bạn có thể tìm thêm thông tin trong Các loại trình lặp . 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 callable(argument1, argument2, ...)377chứ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ụ: callable(argument1, argument2, ...)395 đượ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 callable(argument1, argument2, ...)396, callable(argument1, argument2, ...)397, callable(argument1, argument2, ...)398, callable(argument1, argument2, ...)399, callable(argument1, argument2, ...)00, callable(argument1, argument2, ...)01, callable(argument1, argument2, ...)02 và callable(argument1, argument2, ...)03 Có một số cách để tạo chức năng chính. Ví dụ. phương thức callable(argument1, argument2, ...)04 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 callable(argument1, argument2, ...)05 chẳng hạn như callable(argument1, argument2, ...)06. Ngoài ra, callable(argument1, argument2, ...)07, callable(argument1, argument2, ...)08 và callable(argument1, argument2, ...)09 là ba hàm tạo chính. Xem phần Sắp xếp CÁCH để biết ví dụ về cách tạo và sử dụng các hàm chính. Xem đối số . lambda¶Một hàm nội tuyến ẩn danh bao gồm một biểu thức đơn lẻ được đánh giá khi hàm được gọi. Cú pháp để tạo hàm lambda là callable(argument1, argument2, ...)10LBYL¶ Hãy quan sát trước khi nhảy. 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 EAFP và được đặc trưng bởi sự hiện diện của nhiều câu lệnh callable(argument1, argument2, ...)359. 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 callable(argument1, argument2, ...)13 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ữ Cũng xem mã hóa hệ thống tệp và trình xử lý lỗi . danh sách¶Trình 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 đề callable(argument1, argument2, ...)359 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ýbộ nạp¶ Một đối tượng tải mô-đun. Nó phải định nghĩa một phương thức có tên là callable(argument1, argument2, ...)20. Trình tải thường được trả về bởi công cụ tìm . Xem PEP 302 để biết chi tiết và callable(argument1, argument2, ...)21 để biết lớp cơ sở trừu tượng . phương pháp ma thuật¶ Một từ đồng nghĩa không trang trọng cho phương pháp đặc biệt . lập bản đồ¶Một đối tượng vùng chứa hỗ trợ tra cứu khóa tùy ý và triển khai các phương thức được chỉ định trong callable(argument1, argument2, ...)22 hoặc callable(argument1, argument2, ...)23 các lớp cơ sở trừu tượng . Ví dụ bao gồm callable(argument1, argument2, ...)362, callable(argument1, argument2, ...)25, callable(argument1, argument2, ...)26 và callable(argument1, argument2, ...)27. công cụ tìm đường meta¶ A công cụ tìm được trả về bởi tìm kiếm của callable(argument1, argument2, ...)341. Công cụ tìm đường dẫn meta có liên quan đến, nhưng khác với công cụ tìm mục nhập đường dẫn . Xem callable(argument1, argument2, ...)29 để biết các phương pháp mà công cụ tìm đường dẫn meta triển khaisiê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 Bạn có thể tìm thêm thông tin trong Siêu lớp . 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 đó, thì phương thức sẽ lấy đối tượng thể hiện làm đối số argument đầu tiên của nó (thường được gọi là callable(argument1, argument2, ...)30). Xem hàm và phạm vi lồng nhau . trật 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 đóng vai trò là đơ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 nhập . Xem thêm gói . 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 ví dụ của callable(argument1, argument2, ...)31MRO¶ Xem trình tự giải quyết phương pháp . 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 callable(argument1, argument2, ...)367. Xem thêm không thay đổi . 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 callable(argument1, argument2, ...)33 và callable(argument1, argument2, ...)34. Một ví dụ khác là callable(argument1, argument2, ...)35 callable(argument1, argument2, ...)1 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ừ callable(argument1, argument2, ...)375 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 callable(argument1, argument2, ...)37. 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ẵnkhông gian tên¶ Nơ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 callable(argument1, argument2, ...)38 và callable(argument1, argument2, ...)39 đượ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 callable(argument1, argument2, ...)40 hoặc callable(argument1, argument2, ...)41 làm rõ rằng các chức năng đó được thực hiện bởi các mô-đun callable(argument1, argument2, ...)42 và callable(argument1, argument2, ...)43 tương ứnggói không gian tên¶ Gói PEP 420 package chỉ đóng vai trò là vùng 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ư gói thông thường vì chúng không có tệp callable(argument1, argument2, ...)44. Xem thêm mô-đun . 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. callable(argument1, argument2, ...)45 cho phép ghi vào phạm vi bên ngoàilớ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ư callable(argument1, argument2, ...)46, bộ mô tả, thuộc tính, callable(argument1, argument2, ...)47, phương thức lớp và phương thức tĩnhvật¶ Mọi dữ liệu có trạng thái (thuộc tính hoặc giá trị) và hành vi đã xác định (phương thức). Cũng là lớp cơ sở cuối cùng của bất kỳ lớp kiểu mới nào. bưu kiện¶Một mô-đun Python module 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, ...)369. Xem thêm gói thông thường và gói không gian tên . tham số¶Một thực thể được đặt tên trong định nghĩa hàm (hoặc phương thức) chỉ định một đối số argument (or in some cases, arguments) that the function can accept. There are five kinds of parameter:
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 nhập bảng thuật ngữ đối số , câu hỏi thường gặp về sự khác biệt giữa đối số và tham số< . , the callable(argument1, argument2, ...)53 class, the Function definitions section, and PEP 362.mục nhập đường dẫn¶ Một vị trí duy nhất trên đường dẫn nhập mà công cụ tìm dựa trên đường dẫn consults to find modules for importing. công cụ tìm mục nhập đường dẫn¶A finder được trả về bởi một callable trên callable(argument1, argument2, ...)342 (i. e. a móc nhập đường dẫn ) biết cách xác định vị trí các mô-đun được cung cấp mục nhập đường dẫn. Xem callable(argument1, argument2, ...)55 để biết các phương pháp mà công cụ tìm mục nhập đường dẫn triển khaimóc nhập đường dẫn¶ Một lệnh gọi được trong danh sách callable(argument1, argument2, ...)56 trả về một công cụ tìm mục nhập đường dẫn nếu nó biết cách tìm các mô-đun trên một path entry.công cụ tìm đường dẫn¶ Một trong những công cụ tìm đường dẫn meta mặc định tìm kiếm đường dẫn nhập for modules. đối tượng giống đường dẫn¶Một đối tượng đại diện cho đường dẫn hệ thống tệp. Đối tượng giống đường dẫn là đối tượng callable(argument1, argument2, ...)15 hoặc callable(argument1, argument2, ...)18 đại diện cho đường dẫn hoặc đối tượng triển khai giao thức callable(argument1, argument2, ...)59. Một đối tượng hỗ trợ giao thức callable(argument1, argument2, ...)59 có thể được chuyển đổi thành đường dẫn hệ thống tệp callable(argument1, argument2, ...)15 hoặc callable(argument1, argument2, ...)18 bằng cách gọi hàm callable(argument1, argument2, ...)63; . Được giới thiệu bởi PEP 519PEP¶ Đề 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 khẩu 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í¶Xem đối số . 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¶Xem API tạm thời . 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 iterable bằng cách sử dụng câu lệnh callable(argument1, argument2, ...)358. 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, ...)32 Trái ngược với phương pháp Pythonic sạch hơn callable(argument1, argument2, ...)33tê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, ...)34 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, ...)35số 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à thành phần chính của quá trình triển khai CPython . Các lập trình viên có thể gọi hàm callable(argument1, argument2, ...)70 để trả về số tham chiếu cho một đối tượng cụ thể. gói thường xuyên¶ Một gói truyền thống, chẳng hạn như thư mục chứa tệp callable(argument1, argument2, ...)44. Xem thêm gói không gian tên . __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ự nối tiếp¶Một có thể lặp lại hỗ trợ truy cập phần tử hiệu quả bằng cách sử dụng chỉ mục số nguyên thông qua phương thức đặc biệt callable(argument1, argument2, ...)378 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à callable(argument1, argument2, ...)361, callable(argument1, argument2, ...)15, callable(argument1, argument2, ...)375 và callable(argument1, argument2, ...)18. Lưu ý rằng callable(argument1, argument2, ...)362 cũng hỗ trợ callable(argument1, argument2, ...)378 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 bất biến tùy ý thay vì các số nguyên. Lớp cơ sở trừu tượng callable(argument1, argument2, ...)81 định nghĩa một giao diện phong phú hơn nhiều, vượt xa chỉ callable(argument1, argument2, ...)378 và callable(argument1, argument2, ...)73, bổ sung thêm 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 callable(argument1, argument2, ...)88thiết lập hiểu¶ Một cách nhỏ gọn để xử lý tất cả hoặc một phần 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. Xem Hiển thị cho danh sách, bộ và từ điển . công văn đơn lẻ¶ Một dạng hàm chung gửi đi trong đó việc triển khai được chọn dựa trên loại của một đối số. lát cắt¶Một đối tượng thường chứa một phần của trình 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ố dưới) sử dụng các đối tượng callable(argument1, argument2, ...)93 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 thức đặc biệt được ghi lại trong Tên phương thức đặc biệt . bản tường trình¶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 biểu thức hoặc một trong nhiều cấu trúc có từ khóa, chẳng hạn như callable(argument1, argument2, ...)359, callable(argument1, argument2, ...)327 hoặc callable(argument1, argument2, ...)358. 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 Hàm callable(argument1, argument2, ...)17 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 callable(argument1, argument2, ...)98 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 tài liệu tham khảo mượn . 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 loại mã hóa văn bản codec khác nhau, được gọi chung là “mã hóa văn bản”. tệp văn bản¶A đối tượng tệp có thể đọc và ghi đối tượng callable(argument1, argument2, ...)15. Thông thường, một tệp văn bản thực sự truy cập luồng dữ liệu hướng byte và tự động xử lý mã hóa văn bản . 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), def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...04, def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...05 và các phiên bản của def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...06. Xem thêm tệp nhị phân để biết đối tượng tệp có thể đọc và ghi đối tượng giống như byte< . . chuỗi trích dẫn ba¶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ì; . Có thể truy cập loại đối tượng dưới dạng thuộc tính def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...07 của nó hoặc có thể được truy xuất bằng def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...08nhập 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 Bí danh loại rất hữu ích để đơn giản hóa gợi ý loại . Ví dụ. callable(argument1, argument2, ...)36 có thể được làm cho dễ đọc hơn như thế này callable(argument1, argument2, ...)37 Xem callable(argument1, argument2, ...)363 và PEP 484, mô tả chức năng nàygõ gợi ý¶ Một chú thích chỉ định loại dự kiến cho một biến, thuộc tính lớp hoặc tham số hàm 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 def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...10 Xem callable(argument1, argument2, ...)363 và PEP 484, mô tả chức năng nàydò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ư def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...15 để biết cách sử dụng bổ sungchú thích biến¶ Một chú thích của một biến hoặc một thuộc tính 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, ...)38 Chú thích biến thường được sử dụng cho gợi ý loại . ví dụ: biến này dự kiến sẽ lấy giá trị callable(argument1, argument2, ...)350. callable(argument1, argument2, ...)39 Cú pháp chú thích biến được giải thích trong phần Các câu lệnh gán được chú thích . Xem chú thích chức năng , 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 về chú thích để biết 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 def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...17máy ảo¶ Một máy tính được xác định hoàn toàn bằng phần mềm. Máy ảo của Python thực thi mã byte do trình biên dịch mã byte phát ra. 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õ “ def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...18” tại dấu nhắc tương tác Các từ điển Python có được chuyển qua tham chiếu không?Về bản chất, có thể nói rằng các đối tượng có thể thay đổi như từ điển, bộ và danh sách được truyền theo tham chiếu . Các đối tượng bất biến như int , str , tuple được truyền theo giá trị.
Làm cách nào để chuyển giá trị từ điển làm tham số trong Python?“ kwargs ” là viết tắt của đối số từ khóa. Nó được sử dụng để truyền các đối tượng dữ liệu nâng cao như từ điển đến một hàm bởi vì trong các hàm như vậy, người ta không biết về số lượng đối số, do đó dữ liệu được truyền sẽ được xử lý đúng cách bằng cách thêm “* . .
Các danh sách trong Python có được chuyển qua tham chiếu không?Các danh sách đã được truyền theo tham chiếu , trong đó tất cả các tên Python đều là tham chiếu và các đối tượng danh sách có thể thay đổi.
Bạn có thể truy cập từ điển theo giá trị trong Python không?Truy cập và ghi dữ liệu trong từ điển Python
. Các giá trị có thể được viết bằng cách đặt khóa trong dấu ngoặc vuông bên cạnh từ điển và sử dụng toán tử gán ( = ). Values in a Python dictionary can be accessed by placing the key within square brackets next to the dictionary. Values can be written by placing key within square brackets next to the dictionary and using the assignment operator ( = ). |