Trình thông dịch Python có một số hàm và kiểu được tích hợp sẵn luôn sẵn dùng. Chúng được liệt kê ở đây theo thứ tự bảng chữ cái
Chức năng tích hợp sẵn
A
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']4
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']5
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']6
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']7
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']8
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']9
B
class C: @classmethod def f[cls, arg1, arg2]: ...0
class C: @classmethod def f[cls, arg1, arg2]: ...1
class C: @classmethod def f[cls, arg1, arg2]: ...2
class C: @classmethod def f[cls, arg1, arg2]: ...3
class C: @classmethod def f[cls, arg1, arg2]: ...4
C
class C: @classmethod def f[cls, arg1, arg2]: ...5
class C: @classmethod def f[cls, arg1, arg2]: ...6
class C: @classmethod def f[cls, arg1, arg2]: ...7
class C: @classmethod def f[cls, arg1, arg2]: ...8
class C: @classmethod def f[cls, arg1, arg2]: ...9
D
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']60
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']61
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']63
E
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']64
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66
F
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']68
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']60
G
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']61
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62
H
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']63
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']64
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66
I
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']68
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']60
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']61
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62
L
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']63
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']64
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65
M
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']68
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69
N
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']60
O
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']61
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']63
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']64
P
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67
R
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']68
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']60
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']61
S
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']63
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']64
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']68
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69
T
class C: @classmethod def f[cls, arg1, arg2]: ...600
class C: @classmethod def f[cls, arg1, arg2]: ...601
V
class C: @classmethod def f[cls, arg1, arg2]: ...602
Z
class C: @classmethod def f[cls, arg1, arg2]: ...603
_
class C: @classmethod def f[cls, arg1, arg2]: ...604abs[x]¶
Trả về giá trị tuyệt đối của một số. Đối số có thể là số nguyên, số dấu phẩy động hoặc đối tượng triển khai
class C: @classmethod def f[cls, arg1, arg2]: ...605. Nếu đối số là một số phức, độ lớn của nó được trả vềaiter[async_iterable]¶
Trả về một trình lặp không đồng bộ cho một có thể lặp không đồng bộ . Tương đương với việc gọi
class C: @classmethod def f[cls, arg1, arg2]: ...606.
Ghi chú. Không giống như
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']5 không có biến thể 2 đối số
Mới trong phiên bản 3. 10
tất cả[có thể lặp lại]¶Trả về
class C: @classmethod def f[cls, arg1, arg2]: ...609 nếu tất cả các phần tử của iterable là đúng [hoặc nếu iterable trống]. Tương đương với
class C: @classmethod def f[cls, arg1, arg2]: ...6awaitable anext[async_iterator] ¶ awaitable anext[async_iterator , mặc định]
Khi được chờ đợi, hãy trả về mục tiếp theo từ trình lặp không đồng bộ đã cho hoặc mặc định nếu được cung cấp và trình lặp đã hết.
Đây là biến thể không đồng bộ của nội dung dựng sẵn
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']60 và hoạt động tương tự
Điều này gọi phương thức
class C: @classmethod def f[cls, arg1, arg2]: ...611 của async_iterator, trả về awaitable . Đang chờ điều này trả về giá trị tiếp theo của trình vòng lặp. Nếu giá trị mặc định được đưa ra, nó sẽ được trả về nếu bộ vòng lặp đã cạn kiệt, nếu không, thì
class C: @classmethod def f[cls, arg1, arg2]: ...612 sẽ được nâng lên.
Mới trong phiên bản 3. 10
bất kỳ[có thể lặp lại]¶Trả lại
class C: @classmethod def f[cls, arg1, arg2]: ...609 nếu bất kỳ phần tử nào của iterable là true. Nếu iterable trống, trả về
class C: @classmethod def f[cls, arg1, arg2]: ...614. Tương đương với
class C: @classmethod def f[cls, arg1, arg2]: ...6ascii[đối tượng]¶
Là
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69, trả về một chuỗi chứa biểu diễn có thể in được của một đối tượng, nhưng thoát khỏi các ký tự không phải ASCII trong chuỗi được trả về bởi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69 bằng cách sử dụng các ký tự thoát
class C: @classmethod def f[cls, arg1, arg2]: ...617,
class C: @classmethod def f[cls, arg1, arg2]: ...618 hoặc
class C: @classmethod def f[cls, arg1, arg2]: ...619. Điều này tạo ra một chuỗi tương tự như chuỗi được trả về bởi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69 trong Python 2bin[x]¶
Chuyển đổi một số nguyên thành một chuỗi nhị phân có tiền tố là “0b”. Kết quả là một biểu thức Python hợp lệ. Nếu x không phải là một đối tượng
class C: @classmethod def f[cls, arg1, arg2]: ...621 của Python, thì nó phải xác định một phương thức
class C: @classmethod def f[cls, arg1, arg2]: ...622 trả về một số nguyên. Vài ví dụ
class C: @classmethod def f[cls, arg1, arg2]: ...1
Nếu muốn hoặc không muốn tiền tố “0b”, bạn có thể sử dụng một trong hai cách sau
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
Xem thêm
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69 để biết thêm thông tinclass bool[x=Sai]¶
Trả về giá trị Boolean, i. e. một trong số
class C: @classmethod def f[cls, arg1, arg2]: ...609 hoặc
class C: @classmethod def f[cls, arg1, arg2]: ...614. x được chuyển đổi bằng cách sử dụng quy trình kiểm tra độ chính xác tiêu chuẩn. Nếu x là sai hoặc bị bỏ qua, điều này trả về
class C: @classmethod def f[cls, arg1, arg2]: ...614; . Lớp
class C: @classmethod def f[cls, arg1, arg2]: ...628 là một lớp con của
class C: @classmethod def f[cls, arg1, arg2]: ...621 [xem Kiểu số — int, float, complex ]. Nó không thể được phân loại thêm. Phiên bản duy nhất của nó là
class C: @classmethod def f[cls, arg1, arg2]: ...614 và
class C: @classmethod def f[cls, arg1, arg2]: ...609 [xem Giá trị Boolean ].
Đã thay đổi trong phiên bản 3. 7. x hiện là tham số chỉ vị trí.
điểm dừng[*args , **kws]¶Chức năng này đưa bạn vào trình gỡ lỗi tại trang cuộc gọi. Cụ thể, nó gọi
class C: @classmethod def f[cls, arg1, arg2]: ...632, đi thẳng qua
class C: @classmethod def f[cls, arg1, arg2]: ...633 và
class C: @classmethod def f[cls, arg1, arg2]: ...634. Theo mặc định, ________ 6632 gọi ________ 6636 dự kiến không có đối số. Trong trường hợp này, đây hoàn toàn là một chức năng tiện lợi, do đó bạn không cần phải nhập rõ ràng
class C: @classmethod def f[cls, arg1, arg2]: ...637 hoặc nhập nhiều mã để vào trình gỡ lỗi. Tuy nhiên,
class C: @classmethod def f[cls, arg1, arg2]: ...632 có thể được đặt thành một số chức năng khác và
class C: @classmethod def f[cls, arg1, arg2]: ...2 sẽ tự động gọi chức năng đó, cho phép bạn chuyển sang trình gỡ lỗi tùy chọn. Nếu không truy cập được
class C: @classmethod def f[cls, arg1, arg2]: ...632, chức năng này sẽ tăng
class C: @classmethod def f[cls, arg1, arg2]: ...641
Tăng sự kiện kiểm tra
class C: @classmethod def f[cls, arg1, arg2]: ...642 với đối số
class C: @classmethod def f[cls, arg1, arg2]: ...643.
Mới trong phiên bản 3. 7
Phạm vi hợp lệ cho đối số là từ 0 đến 1.114.111 [0x10FFFF trong cơ số 16].
class C: @classmethod def f[cls, arg1, arg2]: ...663 sẽ tăng nếu tôi nằm ngoài phạm vi đó@phương thức lớp¶
Chuyển đổi một phương thức thành một phương thức lớp
Một phương thức lớp nhận lớp dưới dạng đối số đầu tiên ngầm định, giống như một phương thức thể hiện nhận thể hiện. Để khai báo một phương thức lớp, hãy sử dụng thành ngữ này
class C: @classmethod def f[cls, arg1, arg2]: ...
Biểu mẫu
class C: @classmethod def f[cls, arg1, arg2]: ...664 là một hàm trang trí – xem Định nghĩa hàm for details.
Một phương thức lớp có thể được gọi trên lớp [chẳng hạn như
class C: @classmethod def f[cls, arg1, arg2]: ...665] hoặc trên một thể hiện [chẳng hạn như
class C: @classmethod def f[cls, arg1, arg2]: ...666]. Thể hiện bị bỏ qua ngoại trừ lớp của nó. Nếu một phương thức lớp được gọi cho một lớp dẫn xuất, thì đối tượng lớp dẫn xuất được truyền dưới dạng đối số đầu tiên ngụ ý
Các phương thức của lớp khác với các phương thức tĩnh của C++ hoặc Java. Nếu bạn muốn những thứ đó, hãy xem
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66 trong phần này. Để biết thêm thông tin về các phương thức của lớp, hãy xem Hệ thống phân cấp loại tiêu chuẩn .
Đã thay đổi trong phiên bản 3. 9. Các phương thức của lớp hiện có thể bọc các mô tả khác, chẳng hạn như
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67.
Đã thay đổi trong phiên bản 3. 10. Các phương thức lớp hiện kế thừa các thuộc tính phương thức [
class C: @classmethod def f[cls, arg1, arg2]: ...669,
class C: @classmethod def f[cls, arg1, arg2]: ...670,
class C: @classmethod def f[cls, arg1, arg2]: ...671,
class C: @classmethod def f[cls, arg1, arg2]: ...672 và
class C: @classmethod def f[cls, arg1, arg2]: ...673] và có thuộc tính mới
class C: @classmethod def f[cls, arg1, arg2]: ...674.
Đã thay đổi trong phiên bản 3. 11. Các phương thức của lớp không còn có thể bọc các mô tả khác, chẳng hạn như
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67. biên dịch[nguồn , tên tệp , chế độ , flags=0 , dont_inherit=Sai , tối ưu hóa=- 1]¶
Biên dịch nguồn thành mã hoặc đối tượng AST. Các đối tượng mã có thể được thực thi bởi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66 hoặc
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65. nguồn có thể là một chuỗi bình thường, một chuỗi byte hoặc một đối tượng AST. Tham khảo tài liệu mô-đun
class C: @classmethod def f[cls, arg1, arg2]: ...678 để biết thông tin về cách làm việc với các đối tượng AST
Đối số tên tệp sẽ cung cấp tệp mà mã được đọc từ đó;
Đối số chế độ chỉ định loại mã nào phải được biên dịch;
Các cờ đối số tùy chọn và don_inherit kiểm soát tùy chọn trình biên dịch nào sẽ được kích hoạt và tính năng nào trong tương lai< . Nếu không có [hoặc cả hai đều bằng 0], mã được biên dịch với cùng các cờ ảnh hưởng đến mã đang gọi class C:
@classmethod
def f[cls, arg1, arg2]: ...
8. Nếu đối số flags được đưa ra và không_inherit không [hoặc bằng 0] thì các tùy chọn trình biên dịch và các câu lệnh trong tương lai được chỉ định bởi đối số flags sẽ được sử dụng ngoài các tùy chọn sẽ được sử dụng. Nếu don_inherit là một số nguyên khác 0 thì đối số flags chính là nó – các cờ [các tính năng trong tương lai và tùy chọn trình biên dịch] trong mã xung quanh sẽ bị bỏ qua. should be allowed. If neither is present [or both are zero] the code is compiled with the same flags that affect the code that is calling
class C: @classmethod def f[cls, arg1, arg2]: ...8. If the flags argument is given and dont_inherit is not [or is zero] then the compiler options and the future statements specified by the flags argument are used in addition to those that would be used anyway. If dont_inherit is a non-zero integer then the flags argument is it – the flags [future features and compiler options] in the surrounding code are ignored.
Các tùy chọn trình biên dịch và các câu lệnh trong tương lai được chỉ định bởi các bit có thể được OR theo bit cùng nhau để chỉ định nhiều tùy chọn. Trường bit được yêu cầu để chỉ định một tính năng nhất định trong tương lai có thể được tìm thấy dưới dạng thuộc tính
class C: @classmethod def f[cls, arg1, arg2]: ...685 trên phiên bản
class C: @classmethod def f[cls, arg1, arg2]: ...686 trong mô-đun
class C: @classmethod def f[cls, arg1, arg2]: ...687. Cờ trình biên dịch có thể được tìm thấy trong mô-đun
class C: @classmethod def f[cls, arg1, arg2]: ...678, với tiền tố
class C: @classmethod def f[cls, arg1, arg2]: ...689.
Đối số tối ưu hóa chỉ định mức độ tối ưu hóa của trình biên dịch; . Các mức rõ ràng là
class C: @classmethod def f[cls, arg1, arg2]: ...692 [không tối ưu hóa;
class C: @classmethod def f[cls, arg1, arg2]: ...693 là đúng],
class C: @classmethod def f[cls, arg1, arg2]: ...694 [các xác nhận bị xóa,
class C: @classmethod def f[cls, arg1, arg2]: ...693 là sai] hoặc
class C: @classmethod def f[cls, arg1, arg2]: ...696 [các chuỗi tài liệu cũng bị xóa]
Hàm này tăng
class C: @classmethod def f[cls, arg1, arg2]: ...697 nếu nguồn đã biên dịch không hợp lệ và
class C: @classmethod def f[cls, arg1, arg2]: ...663 nếu nguồn chứa byte rỗng
Nếu bạn muốn phân tích mã Python thành biểu diễn AST của nó, hãy xem
class C: @classmethod def f[cls, arg1, arg2]: ...699
Tăng sự kiện kiểm tra
class C: @classmethod def f[cls, arg1, arg2]: ...100 với các đối số
class C: @classmethod def f[cls, arg1, arg2]: ...101 và
class C: @classmethod def f[cls, arg1, arg2]: ...102. Sự kiện này cũng có thể được nâng lên bằng cách tổng hợp ngầm.
Ghi chú
Khi biên dịch một chuỗi có mã nhiều dòng ở chế độ
class C: @classmethod def f[cls, arg1, arg2]: ...682 hoặc
class C: @classmethod def f[cls, arg1, arg2]: ...681, đầu vào phải được kết thúc bằng ít nhất một ký tự xuống dòng. Điều này là để tạo điều kiện phát hiện các báo cáo không đầy đủ và đầy đủ trong mô-đun
class C: @classmethod def f[cls, arg1, arg2]: ...105
Cảnh báo
Có thể làm hỏng trình thông dịch Python với chuỗi đủ lớn/phức tạp khi biên dịch thành đối tượng AST do giới hạn độ sâu ngăn xếp trong trình biên dịch AST của Python
Đã thay đổi trong phiên bản 3. 2. Được phép sử dụng dòng mới của Windows và Mac. Ngoài ra, đầu vào ở chế độ
class C: @classmethod def f[cls, arg1, arg2]: ...680 không phải kết thúc bằng một dòng mới nữa. Đã thêm tham số tối ưu hóa.
Đã thay đổi trong phiên bản 3. 5. Trước đây,
class C: @classmethod def f[cls, arg1, arg2]: ...107 đã xuất hiện khi gặp phải byte rỗng trong nguồn.
Mới trong phiên bản 3. 8.
class C: @classmethod def f[cls, arg1, arg2]: ...108 giờ đây có thể được chuyển vào cờ để kích hoạt hỗ trợ cho
class C: @classmethod def f[cls, arg1, arg2]: ...109,
class C: @classmethod def f[cls, arg1, arg2]: ...110 và
class C: @classmethod def f[cls, arg1, arg2]: ...111 cấp cao nhất. lớp phức tạp[thực=0 , hình ảnh=0] ¶ lớp phức tạp[chuỗi]
Trả về một số phức với giá trị thực + hình ảnh*1j hoặc chuyển đổi một chuỗi hoặc số thành một số phức. Nếu tham số đầu tiên là một chuỗi, nó sẽ được hiểu là một số phức và hàm phải được gọi mà không có tham số thứ hai. Tham số thứ hai không bao giờ có thể là một chuỗi. Mỗi đối số có thể là bất kỳ loại số nào [kể cả phức tạp]. Nếu hình ảnh bị bỏ qua, nó sẽ mặc định bằng 0 và hàm tạo đóng vai trò chuyển đổi số như
class C: @classmethod def f[cls, arg1, arg2]: ...621 và
class C: @classmethod def f[cls, arg1, arg2]: ...113. Nếu cả hai đối số bị bỏ qua, trả về
class C: @classmethod def f[cls, arg1, arg2]: ...114
Đối với một đối tượng Python chung
class C: @classmethod def f[cls, arg1, arg2]: ...115,
class C: @classmethod def f[cls, arg1, arg2]: ...116 ủy quyền cho
class C: @classmethod def f[cls, arg1, arg2]: ...117. Nếu
class C: @classmethod def f[cls, arg1, arg2]: ...118 không được xác định thì nó sẽ quay trở lại
class C: @classmethod def f[cls, arg1, arg2]: ...119. Nếu
class C: @classmethod def f[cls, arg1, arg2]: ...119 không được xác định thì nó sẽ quay trở lại
class C: @classmethod def f[cls, arg1, arg2]: ...622
Ghi chú
Khi chuyển đổi từ một chuỗi, chuỗi không được chứa khoảng trắng xung quanh toán tử trung tâm
class C: @classmethod def f[cls, arg1, arg2]: ...122 hoặc
class C: @classmethod def f[cls, arg1, arg2]: ...123. Ví dụ:
class C: @classmethod def f[cls, arg1, arg2]: ...124 cũng được, nhưng
class C: @classmethod def f[cls, arg1, arg2]: ...125 tăng
class C: @classmethod def f[cls, arg1, arg2]: ...663
Kiểu phức hợp được mô tả trong Kiểu số — int, float, complex .
Đã thay đổi trong phiên bản 3. 6. Cho phép nhóm các chữ số có dấu gạch dưới như trong mã chữ.
Đã thay đổi trong phiên bản 3. 8. Trở về
class C: @classmethod def f[cls, arg1, arg2]: ...622 nếu
class C: @classmethod def f[cls, arg1, arg2]: ...118 và
class C: @classmethod def f[cls, arg1, arg2]: ...119 không được xác định. delattr[đối tượng , tên]¶
Đây là họ hàng của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']63. Các đối số là một đối tượng và một chuỗi. Chuỗi phải là tên của một trong các thuộc tính của đối tượng. Hàm xóa thuộc tính được đặt tên, miễn là đối tượng cho phép. Ví dụ,
class C: @classmethod def f[cls, arg1, arg2]: ...131 tương đương với
class C: @classmethod def f[cls, arg1, arg2]: ...132. tên không cần phải là mã định danh Python [xem
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']63]class dict[**kwarg]lớp dict[ánh xạ , **kwarg]class dict[có thể lặp lại , **kwarg]
Tạo từ điển mới. Đối tượng
class C: @classmethod def f[cls, arg1, arg2]: ...134 là lớp từ điển. Xem
class C: @classmethod def f[cls, arg1, arg2]: ...134 và Các loại ánh xạ — dict để biết tài liệu về lớp này.
Đối với các vùng chứa khác, hãy xem các lớp
class C: @classmethod def f[cls, arg1, arg2]: ...136,
class C: @classmethod def f[cls, arg1, arg2]: ...137 và
class C: @classmethod def f[cls, arg1, arg2]: ...138 tích hợp sẵn, cũng như mô-đun
class C: @classmethod def f[cls, arg1, arg2]: ...139dir[] ¶ dir[đối tượng]
Không có đối số, trả về danh sách tên trong phạm vi cục bộ hiện tại. Với một đối số, cố gắng trả về danh sách các thuộc tính hợp lệ cho đối tượng đó
Nếu đối tượng có một phương thức tên là
class C: @classmethod def f[cls, arg1, arg2]: ...140, phương thức này sẽ được gọi và phải trả về danh sách các thuộc tính. Điều này cho phép các đối tượng triển khai hàm
class C: @classmethod def f[cls, arg1, arg2]: ...141 hoặc
class C: @classmethod def f[cls, arg1, arg2]: ...142 tùy chỉnh để tùy chỉnh cách thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62 báo cáo các thuộc tính của chúng
Nếu đối tượng không cung cấp
class C: @classmethod def f[cls, arg1, arg2]: ...140, hàm sẽ cố gắng hết sức để thu thập thông tin từ thuộc tính
class C: @classmethod def f[cls, arg1, arg2]: ...145 của đối tượng, nếu được xác định và từ đối tượng loại của nó. Danh sách kết quả không nhất thiết phải đầy đủ và có thể không chính xác khi đối tượng có một
class C: @classmethod def f[cls, arg1, arg2]: ...141 tùy chỉnh
Cơ chế
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62 mặc định hoạt động khác với các loại đối tượng khác nhau, vì nó cố gắng tạo ra thông tin phù hợp nhất, thay vì đầy đủ,
Nếu đối tượng là một đối tượng mô-đun, danh sách chứa tên của các thuộc tính của mô-đun
Nếu đối tượng là một đối tượng kiểu hoặc lớp, thì danh sách chứa tên của các thuộc tính của nó và đệ quy các thuộc tính của các cơ sở của nó
Mặt khác, danh sách chứa các tên thuộc tính của đối tượng, tên của các thuộc tính của lớp đối tượng và đệ quy các thuộc tính của các lớp cơ sở của lớp đối tượng.
Danh sách kết quả được sắp xếp theo thứ tự bảng chữ cái. Ví dụ
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']6
Ghi chú
Bởi vì
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62 được cung cấp chủ yếu để thuận tiện cho việc sử dụng tại dấu nhắc tương tác, nên nó cố gắng cung cấp một bộ tên thú vị hơn là cố gắng cung cấp một bộ tên được xác định chặt chẽ hoặc nhất quán và hành vi chi tiết của nó có thể thay đổi qua các bản phát hành. Ví dụ: các thuộc tính siêu lớp không có trong danh sách kết quả khi đối số là một lớpdivmod[a , b]¶
Lấy hai số [không phức tạp] làm đối số và trả về một cặp số bao gồm thương và số dư của chúng khi sử dụng phép chia số nguyên. Với các loại toán hạng hỗn hợp, áp dụng các quy tắc cho toán tử số học nhị phân. Đối với số nguyên, kết quả giống như
class C: @classmethod def f[cls, arg1, arg2]: ...149. Đối với số dấu phẩy động, kết quả là
class C: @classmethod def f[cls, arg1, arg2]: ...150, trong đó q thường là
class C: @classmethod def f[cls, arg1, arg2]: ...151 nhưng có thể nhỏ hơn 1. Trong mọi trường hợp,
class C: @classmethod def f[cls, arg1, arg2]: ...152 rất gần với a, nếu
class C: @classmethod def f[cls, arg1, arg2]: ...153 khác 0 thì nó có cùng dấu với b, và
class C: @classmethod def f[cls, arg1, arg2]: ...154liệt kê[có thể lặp lại , bắt đầu=0]¶
Trả về một đối tượng liệt kê. iterable phải là một trình tự, một iterator hoặc một số đối tượng khác hỗ trợ phép lặp. Phương thức
class C: @classmethod def f[cls, arg1, arg2]: ...155 của trình vòng lặp được trả về bởi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']64 trả về một bộ chứa số đếm [từ đầu được mặc định là 0] và các giá trị thu được từ việc lặp qua lặp lại.
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']6
Tương đương với
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']6eval[biểu thức , / , toàn cầu=Không có , người dân địa phương=Không có]¶
Các đối số là một chuỗi và toàn cục và cục bộ tùy chọn. Nếu được cung cấp, toàn cầu phải là một từ điển. Nếu được cung cấp, người dân địa phương có thể là bất kỳ đối tượng ánh xạ nào
Đối số biểu thức được phân tích cú pháp và đánh giá dưới dạng một biểu thức Python [về mặt kỹ thuật, một danh sách điều kiện] bằng cách sử dụng từ điển toàn cầu và cục bộ dưới dạng không gian tên toàn cầu và cục bộ. Nếu có từ điển toàn cầu và không chứa giá trị cho khóa
class C: @classmethod def f[cls, arg1, arg2]: ...157, tham chiếu đến từ điển của mô-đun tích hợp sẵn
class C: @classmethod def f[cls, arg1, arg2]: ...158 được chèn vào bên dưới khóa đó trước khi biểu thức được phân tích cú pháp. Bằng cách đó, bạn có thể kiểm soát nội trang nào có sẵn cho mã được thực thi bằng cách chèn từ điển
class C: @classmethod def f[cls, arg1, arg2]: ...157 của riêng bạn vào toàn cầu trước khi chuyển nó tới
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65. Nếu từ điển địa phương bị bỏ qua, nó sẽ mặc định là từ điển toàn cầu. Nếu cả hai từ điển đều bị bỏ qua, biểu thức được thực thi với toàn cầu và cục bộ trong môi trường nơi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65 được gọi. Lưu ý, eval[] không có quyền truy cập vào phạm vi lồng nhau [không phải cục bộ] trong môi trường kèm theo.
Giá trị trả về là kết quả của biểu thức được đánh giá. Lỗi cú pháp được báo cáo là ngoại lệ. Thí dụ
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']6
Hàm này cũng có thể được sử dụng để thực thi các đối tượng mã tùy ý [chẳng hạn như các đối tượng được tạo bởi
class C: @classmethod def f[cls, arg1, arg2]: ...8]. Trong trường hợp này, hãy chuyển một đối tượng mã thay vì một chuỗi. Nếu đối tượng mã đã được biên dịch với
class C: @classmethod def f[cls, arg1, arg2]: ...680 làm đối số chế độ, giá trị trả về của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65 sẽ là
class C: @classmethod def f[cls, arg1, arg2]: ...683
gợi ý. việc thực thi động các câu lệnh được hỗ trợ bởi hàm
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66. Các hàm
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62 và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65 lần lượt trả về từ điển cục bộ và toàn cầu hiện tại, có thể hữu ích khi chuyển qua để sử dụng bởi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65 hoặc
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66
Nếu nguồn đã cho là một chuỗi, thì các dấu cách và tab ở đầu và cuối sẽ bị loại bỏ
Xem
class C: @classmethod def f[cls, arg1, arg2]: ...171 để biết một hàm có thể đánh giá các chuỗi một cách an toàn bằng các biểu thức chỉ chứa các ký tự
Tăng sự kiện kiểm tra
class C: @classmethod def f[cls, arg1, arg2]: ...172 với đối tượng mã làm đối số. Các sự kiện biên dịch mã cũng có thể được nâng lên. exec[đối tượng , toàn cầu=Không có , người dân địa phương=Không có , / , * , đóng cửa=Không có]¶
Hàm này hỗ trợ thực thi động mã Python. đối tượng phải là một chuỗi hoặc một đối tượng mã. Nếu đó là một chuỗi, thì chuỗi đó được phân tích thành một tập hợp các câu lệnh Python, sau đó được thực thi [trừ khi xảy ra lỗi cú pháp]. 1 Nếu nó là một đối tượng mã, nó được thực thi đơn giản. Trong mọi trường hợp, mã được thực thi phải hợp lệ dưới dạng đầu vào tệp [xem phần Đầu vào tệp trong Hướng dẫn tham khảo]. Xin lưu ý rằng các câu lệnh
class C: @classmethod def f[cls, arg1, arg2]: ...173,
class C: @classmethod def f[cls, arg1, arg2]: ...174 và
class C: @classmethod def f[cls, arg1, arg2]: ...175 không được sử dụng bên ngoài các định nghĩa hàm ngay cả trong ngữ cảnh của mã được truyền cho hàm
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66. Giá trị trả về là
class C: @classmethod def f[cls, arg1, arg2]: ...683.
Trong mọi trường hợp, nếu các phần tùy chọn bị bỏ qua, mã được thực thi trong phạm vi hiện tại. Nếu chỉ toàn cầu được cung cấp, nó phải là một từ điển [và không phải là một lớp con của từ điển], sẽ được sử dụng cho cả biến toàn cục và biến cục bộ. Nếu toàn cầu và cục bộ được cung cấp, chúng được sử dụng cho các biến toàn cầu và cục bộ tương ứng. Nếu được cung cấp, người dân địa phương có thể là bất kỳ đối tượng ánh xạ nào. Hãy nhớ rằng ở cấp độ mô-đun, toàn cầu và cục bộ là cùng một từ điển. Nếu exec lấy hai đối tượng riêng biệt là toàn cầu và cục bộ, mã sẽ được thực thi như thể nó được nhúng trong một định nghĩa lớp
Nếu từ điển toàn cục không chứa giá trị cho khóa
class C: @classmethod def f[cls, arg1, arg2]: ...157, tham chiếu đến từ điển của mô-đun tích hợp sẵn
class C: @classmethod def f[cls, arg1, arg2]: ...158 sẽ được chèn vào bên dưới khóa đó. Bằng cách đó, bạn có thể kiểm soát nội trang nào có sẵn cho mã được thực thi bằng cách chèn từ điển
class C: @classmethod def f[cls, arg1, arg2]: ...157 của riêng bạn vào toàn cục trước khi chuyển nó tới
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66
Đối số đóng chỉ định một đóng – một bộ các ô. Nó chỉ hợp lệ khi đối tượng là một đối tượng mã có chứa các biến tự do. Độ dài của bộ dữ liệu phải khớp chính xác với số lượng biến miễn phí được tham chiếu bởi đối tượng mã
Tăng sự kiện kiểm tra
class C: @classmethod def f[cls, arg1, arg2]: ...172 với đối tượng mã làm đối số. Các sự kiện biên dịch mã cũng có thể được nâng lên.
Ghi chú
Các hàm tích hợp sẵn
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62 và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65 lần lượt trả về từ điển toàn cầu và cục bộ hiện tại, có thể hữu ích khi chuyển qua để sử dụng làm đối số thứ hai và thứ ba cho
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66
Ghi chú
Các địa phương mặc định hoạt động như được mô tả cho chức năng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65 bên dưới. không nên sửa đổi từ điển địa phương mặc định. Vượt qua một từ điển địa phương rõ ràng nếu bạn cần xem tác động của mã đối với người dân địa phương sau khi hàm
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66 trả về
Đã thay đổi trong phiên bản 3. 11. Đã thêm tham số đóng cửa.
bộ lọc[chức năng , có thể lặp lại]¶Xây dựng một iterator từ các phần tử iterable mà hàm trả về true. iterable có thể là một chuỗi, một vùng chứa hỗ trợ phép lặp hoặc một trình lặp. Nếu hàm là
class C: @classmethod def f[cls, arg1, arg2]: ...683, thì hàm nhận dạng được giả định, nghĩa là tất cả các phần tử của iterable sai sẽ bị xóa
Lưu ý rằng
class C: @classmethod def f[cls, arg1, arg2]: ...189 tương đương với biểu thức trình tạo
class C: @classmethod def f[cls, arg1, arg2]: ...190 nếu chức năng không phải là
class C: @classmethod def f[cls, arg1, arg2]: ...683 và
class C: @classmethod def f[cls, arg1, arg2]: ...192 nếu chức năng là
class C: @classmethod def f[cls, arg1, arg2]: ...683
Xem
class C: @classmethod def f[cls, arg1, arg2]: ...194 để biết hàm bổ sung trả về các phần tử của iterable mà hàm trả về falselớp float[x=0. 0]¶
Trả về một số dấu phẩy động được tạo từ một số hoặc chuỗi x
Nếu đối số là một chuỗi, thì đối số đó phải chứa số thập phân, tùy chọn đứng trước dấu và được nhúng tùy chọn trong khoảng trắng. Dấu hiệu tùy chọn có thể là
class C: @classmethod def f[cls, arg1, arg2]: ...195 hoặc
class C: @classmethod def f[cls, arg1, arg2]: ...196; . Đối số cũng có thể là một chuỗi đại diện cho một NaN [không phải là số] hoặc vô cực dương hoặc âm. Chính xác hơn, đầu vào phải tuân theo ngữ pháp sau sau khi các ký tự khoảng trắng ở đầu và cuối bị xóa
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']6
Ở đây
class C: @classmethod def f[cls, arg1, arg2]: ...198 là dạng của một ký tự dấu phẩy động Python, được mô tả trong Chữ thực dấu phẩy động . Trường hợp không đáng kể, vì vậy, ví dụ: “inf”, “Inf”, “INFINITY” và “iNfINity” đều là cách viết chấp nhận được cho vô cực dương.
Mặt khác, nếu đối số là một số nguyên hoặc số dấu phẩy động, thì một số dấu phẩy động có cùng giá trị [trong phạm vi độ chính xác của dấu phẩy động của Python] sẽ được trả về. Nếu đối số nằm ngoài phạm vi float của Python, thì một
class C: @classmethod def f[cls, arg1, arg2]: ...199 sẽ xuất hiện
Đối với một đối tượng Python chung
class C: @classmethod def f[cls, arg1, arg2]: ...115,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']01 ủy quyền cho
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']02. Nếu
class C: @classmethod def f[cls, arg1, arg2]: ...119 không được xác định thì nó sẽ quay trở lại
class C: @classmethod def f[cls, arg1, arg2]: ...622
Nếu không có đối số nào được đưa ra, thì trả về
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']05
ví dụ
class C: @classmethod def f[cls, arg1, arg2]: ...60
Kiểu float được mô tả trong Kiểu số — int, float, complex .
Đã thay đổi trong phiên bản 3. 6. Cho phép nhóm các chữ số có dấu gạch dưới như trong mã chữ.
Đã thay đổi trong phiên bản 3. 7. x hiện là tham số chỉ vị trí.
Đã thay đổi trong phiên bản 3. 8. Trở về
class C: @classmethod def f[cls, arg1, arg2]: ...622 nếu không xác định được
class C: @classmethod def f[cls, arg1, arg2]: ...119. định dạng[giá trị , format_spec='']¶
Chuyển đổi giá trị thành biểu diễn “được định dạng”, như được kiểm soát bởi format_spec. Việc giải thích format_spec sẽ phụ thuộc vào loại đối số giá trị; . Ngôn ngữ nhỏ đặc tả định dạng .
Định dạng_spec mặc định là một chuỗi rỗng thường mang lại tác dụng tương tự như khi gọi _____008
Một cuộc gọi đến
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']09 được dịch sang
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']10 bỏ qua từ điển cá thể khi tìm kiếm phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']11 của giá trị. Một ngoại lệ
class C: @classmethod def f[cls, arg1, arg2]: ...107 được đưa ra nếu tìm kiếm phương thức đạt tới
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']13 và format_spec không trống hoặc nếu format_spec hoặc giá trị trả về không phải là chuỗi
Đã thay đổi trong phiên bản 3. 4. ______014 tăng
class C: @classmethod def f[cls, arg1, arg2]: ...107 nếu format_spec không phải là một chuỗi rỗng. lớp đóng băng[có thể lặp lại=set[]]
Trả về một đối tượng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']16 mới, tùy chọn với các phần tử được lấy từ iterable.
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']16 là lớp dựng sẵn. Xem
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']16 và Loại thiết lập — set, freezeset để biết tài liệu về lớp này.
Đối với các vùng chứa khác, hãy xem các lớp
class C: @classmethod def f[cls, arg1, arg2]: ...137,
class C: @classmethod def f[cls, arg1, arg2]: ...136,
class C: @classmethod def f[cls, arg1, arg2]: ...138 và
class C: @classmethod def f[cls, arg1, arg2]: ...134 tích hợp sẵn, cũng như mô-đun
class C: @classmethod def f[cls, arg1, arg2]: ...139getattr[đối tượng , tên] ¶ getattr[đối tượng , tên , mặc định]
Trả về giá trị của thuộc tính được đặt tên của đối tượng. tên phải là một chuỗi. Nếu chuỗi là tên của một trong các thuộc tính của đối tượng, thì kết quả là giá trị của thuộc tính đó. Ví dụ,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']24 tương đương với
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']25. Nếu thuộc tính được đặt tên không tồn tại, giá trị mặc định sẽ được trả về nếu được cung cấp, nếu không thì
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']26 được nâng lên. tên không cần phải là mã định danh Python [xem
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']63]
Ghi chú
Vì việc xáo trộn tên riêng xảy ra vào thời điểm biên dịch, người ta phải xáo trộn tên của một thuộc tính riêng [các thuộc tính có hai dấu gạch dưới ở đầu] theo cách thủ công để .
toàn cầu[]¶Trả về từ điển triển khai không gian tên mô-đun hiện tại. Đối với mã bên trong hàm, giá trị này được đặt khi hàm được xác định và giữ nguyên bất kể hàm được gọi ở đâu
hasattr[đối tượng , tên]¶Các đối số là một đối tượng và một chuỗi. Kết quả là
class C: @classmethod def f[cls, arg1, arg2]: ...609 nếu chuỗi là tên của một trong các thuộc tính của đối tượng,
class C: @classmethod def f[cls, arg1, arg2]: ...614 nếu không. [Điều này được thực hiện bằng cách gọi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']31 và xem liệu nó có tăng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']26 hay không. ]hàm băm[đối tượng]¶
Trả về giá trị băm của đối tượng [nếu có]. Giá trị băm là số nguyên. Chúng được sử dụng để so sánh nhanh các khóa từ điển trong quá trình tra cứu từ điển. Các giá trị số so sánh bằng nhau có cùng giá trị băm [ngay cả khi chúng thuộc các loại khác nhau, như trường hợp của 1 và 1. 0]
Ghi chú
Đối với các đối tượng có phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']33 tùy chỉnh, lưu ý rằng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']64 cắt bớt giá trị trả về dựa trên độ rộng bit của máy chủ. Xem
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']33 để biết chi tiếttrợ giúp[] ¶ trợ giúp[yêu cầu]
Gọi hệ thống trợ giúp tích hợp. [Chức năng này dành cho sử dụng tương tác. ] Nếu không có đối số nào được đưa ra, hệ thống trợ giúp tương tác sẽ bắt đầu trên bảng điều khiển phiên dịch. Nếu đối số là một chuỗi, thì chuỗi đó được tra cứu dưới dạng tên của mô-đun, hàm, lớp, phương thức, từ khóa hoặc chủ đề tài liệu và trang trợ giúp được in trên bảng điều khiển. Nếu đối số là bất kỳ loại đối tượng nào khác, một trang trợ giúp về đối tượng sẽ được tạo
Lưu ý rằng nếu dấu gạch chéo [/] xuất hiện trong danh sách tham số của hàm khi gọi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65, điều đó có nghĩa là các tham số trước dấu gạch chéo chỉ là vị trí. Để biết thêm thông tin, hãy xem mục Câu hỏi thường gặp về thông số chỉ vị trí .
Chức năng này được thêm vào không gian tên tích hợp bởi mô-đun
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']37
Đã thay đổi trong phiên bản 3. 4. Các thay đổi đối với
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']38 và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']39 có nghĩa là các chữ ký được báo cáo cho các vật phẩm có thể gọi được hiện toàn diện và nhất quán hơn. hex[x]¶
Chuyển đổi một số nguyên thành chuỗi thập lục phân chữ thường có tiền tố là “0x”. Nếu x không phải là một đối tượng
class C: @classmethod def f[cls, arg1, arg2]: ...621 của Python, thì nó phải xác định một phương thức
class C: @classmethod def f[cls, arg1, arg2]: ...622 trả về một số nguyên. Vài ví dụ
class C: @classmethod def f[cls, arg1, arg2]: ...61
Nếu bạn muốn chuyển đổi một số nguyên sang một chuỗi thập lục phân hoa hoặc thường có tiền tố hoặc không, bạn có thể sử dụng một trong hai cách sau
class C: @classmethod def f[cls, arg1, arg2]: ...62
Xem thêm
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69 để biết thêm thông tin
Xem thêm
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69 để chuyển đổi chuỗi thập lục phân thành số nguyên bằng cơ số 16
Ghi chú
Để có được biểu diễn chuỗi thập lục phân cho số float, hãy sử dụng phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']44id[đối tượng]¶
Trả về “danh tính” của một đối tượng. Đây là một số nguyên được đảm bảo là duy nhất và không đổi cho đối tượng này trong suốt thời gian tồn tại của nó. Hai đối tượng có thời gian sống không chồng chéo có thể có cùng giá trị
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67
Chi tiết triển khai CPython. Đây là địa chỉ của đối tượng trong bộ nhớ
Tăng sự kiện kiểm tra
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']46 với đối số
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']47. đầu vào[] ¶ đầu vào[nhắc]
Nếu có đối số dấu nhắc, nó sẽ được ghi vào đầu ra tiêu chuẩn mà không có dòng mới ở cuối. Sau đó, hàm đọc một dòng từ đầu vào, chuyển đổi nó thành một chuỗi [bỏ một dòng mới ở cuối] và trả về dòng đó. Khi EOF được đọc,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']48 được nâng lên. Thí dụ
class C: @classmethod def f[cls, arg1, arg2]: ...63
Nếu mô-đun
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']49 đã được tải, thì
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']68 sẽ sử dụng nó để cung cấp các tính năng lịch sử và chỉnh sửa dòng phức tạp
Tăng sự kiện kiểm tra
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']51 với đối số
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']52 trước khi đọc đầu vào
Tăng sự kiện kiểm tra
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']53 với kết quả sau khi đọc thành công đầu vào. class int[x=0] ¶ lớp int[x , cơ sở=10]
Trả về một đối tượng số nguyên được tạo từ một số hoặc chuỗi x hoặc trả về
class C: @classmethod def f[cls, arg1, arg2]: ...692 nếu không có đối số nào được đưa ra. Nếu x xác định
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']55,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']56 trả về
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']57. Nếu x định nghĩa
class C: @classmethod def f[cls, arg1, arg2]: ...622, nó trả về
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']59. Nếu x định nghĩa
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']60, nó trả về
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']61. Đối với các số dấu phẩy động, số này cắt ngắn về 0
Nếu x không phải là một số hoặc nếu cơ số được đưa ra, thì x phải là một chuỗi, thể hiện của
class C: @classmethod def f[cls, arg1, arg2]: ...645 hoặc
class C: @classmethod def f[cls, arg1, arg2]: ...644 đại diện cho một số nguyên in radix base. Optionally, the literal can be preceded by
class C: @classmethod def f[cls, arg1, arg2]: ...122 or
class C: @classmethod def f[cls, arg1, arg2]: ...123 [with no space in between] and surrounded by whitespace. A base-n literal consists of the digits 0 to n-1, with
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66 to
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67 [or
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']68 to
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69] having values 10 to 35. The default base is 10. The allowed values are 0 and 2–36. Base-2, -8, and -16 literals can be optionally prefixed with
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']70/
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']71,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']72/
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']73, or
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']74/
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']75, as with integer literals in code. Base 0 means to interpret exactly as a code literal, so that the actual base is 2, 8, 10, or 16, and so that
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']76 is not legal, while
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']77 is, as well as
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']78.
Kiểu số nguyên được mô tả trong Kiểu số — int, float, complex .
Đã thay đổi trong phiên bản 3. 4. Nếu cơ sở không phải là một thể hiện của
class C: @classmethod def f[cls, arg1, arg2]: ...621 và đối tượng cơ sở có một phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']80, thì phương thức đó được gọi để lấy một số nguyên cho cơ sở. Các phiên bản trước sử dụng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']81 thay vì
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']80.
Đã thay đổi trong phiên bản 3. 6. Cho phép nhóm các chữ số có dấu gạch dưới như trong mã chữ.
Đã thay đổi trong phiên bản 3. 7. x hiện là tham số chỉ vị trí.
Đã thay đổi trong phiên bản 3. 8. Trở về
class C: @classmethod def f[cls, arg1, arg2]: ...622 nếu không xác định được
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']55.
Đã thay đổi trong phiên bản 3. 11. Việc ủy quyền cho
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']60 không được chấp nhận.
Đã thay đổi trong phiên bản 3. 11. ______6621 đầu vào chuỗi và biểu diễn chuỗi có thể được giới hạn để giúp tránh các cuộc tấn công từ chối dịch vụ. Một
class C: @classmethod def f[cls, arg1, arg2]: ...663 được nâng lên khi vượt quá giới hạn trong khi chuyển đổi một chuỗi x thành một
class C: @classmethod def f[cls, arg1, arg2]: ...621 hoặc khi chuyển đổi một
class C: @classmethod def f[cls, arg1, arg2]: ...621 thành một chuỗi sẽ vượt quá giới hạn. Xem tài liệu giới hạn độ dài chuyển đổi chuỗi số nguyên . isinstance[đối tượng , thông tin lớp học]¶
Trả về
class C: @classmethod def f[cls, arg1, arg2]: ...609 nếu đối số đối tượng là một thể hiện của đối số classinfo hoặc của một lớp con [trực tiếp, gián tiếp hoặc ảo ] của nó. Nếu đối tượng không phải là đối tượng của loại đã cho, hàm luôn trả về
class C: @classmethod def f[cls, arg1, arg2]: ...614. Nếu classinfo là một bộ gồm các đối tượng loại [hoặc theo cách đệ quy, các bộ khác như vậy] hoặc một Loại liên kết gồm nhiều loại, hãy trả về
class C: @classmethod def f[cls, arg1, arg2]: ...609 nếu đối tượng là một thể hiện của . Nếu classinfo không phải là một loại hoặc bộ dữ liệu của các loại và các bộ dữ liệu như vậy, một ngoại lệ
class C: @classmethod def f[cls, arg1, arg2]: ...107 sẽ được đưa ra.
class C: @classmethod def f[cls, arg1, arg2]: ...107 có thể không được nâng lên đối với loại không hợp lệ nếu lần kiểm tra trước đó thành công.
Đã thay đổi trong phiên bản 3. 10. classinfo có thể là một Loại Liên minh .
issubclass[lớp , thông tin lớp học]¶Trả về
class C: @classmethod def f[cls, arg1, arg2]: ...609 nếu lớp là lớp con [trực tiếp, gián tiếp hoặc ảo ] của classinfo. Một lớp được coi là một lớp con của chính nó. classinfo có thể là một bộ gồm các đối tượng của lớp [hoặc theo cách đệ quy, các bộ khác như vậy] hoặc một Loại liên kết , trong trường hợp này trả về
class C: @classmethod def f[cls, arg1, arg2]: ...609 nếu lớp là một lớp con của . Trong bất kỳ trường hợp nào khác, một ngoại lệ
class C: @classmethod def f[cls, arg1, arg2]: ...107 được đưa ra.
Đã thay đổi trong phiên bản 3. 10. classinfo có thể là một Loại Liên minh .
iter[đối tượng] ¶ iter[đối tượng , trọng điểm]Trả về một đối tượng iterator . Đối số đầu tiên được diễn giải rất khác nhau tùy thuộc vào sự hiện diện của đối số thứ hai. Không có đối số thứ hai, đối tượng phải là một đối tượng tập hợp hỗ trợ giao thức có thể lặp lại [phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']98] hoặc nó phải hỗ trợ giao thức trình tự [phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']99 . Nếu nó không hỗ trợ một trong hai giao thức đó, thì
class C: @classmethod def f[cls, arg1, arg2]: ...107 sẽ được nâng lên. Nếu đối số thứ hai, sentinel, được đưa ra, thì đối tượng phải là đối tượng có thể gọi được. Trình vòng lặp được tạo trong trường hợp này sẽ gọi đối tượng không có đối số cho mỗi lệnh gọi đến phương thức
class C: @classmethod def f[cls, arg1, arg2]: ...155 của nó; .
Xem thêm Các loại trình lặp .
Một ứng dụng hữu ích của dạng thứ hai của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62 là xây dựng trình đọc khối. Ví dụ: đọc các khối có chiều rộng cố định từ tệp cơ sở dữ liệu nhị phân cho đến khi đạt đến cuối tệp
class C: @classmethod def f[cls, arg1, arg2]: ...64len[s]¶
Trả về chiều dài [số lượng mục] của một đối tượng. Đối số có thể là một chuỗi [chẳng hạn như chuỗi, byte, bộ, danh sách hoặc phạm vi] hoặc bộ sưu tập [chẳng hạn như từ điển, tập hợp hoặc tập hợp cố định]
Chi tiết triển khai CPython.
class C: @classmethod def f[cls, arg1, arg2]: ...05 tăng
class C: @classmethod def f[cls, arg1, arg2]: ...199 trên chiều dài lớn hơn
class C: @classmethod def f[cls, arg1, arg2]: ...07, chẳng hạn như
class C: @classmethod def f[cls, arg1, arg2]: ...08lớp danh sáchlớp danh sách[có thể lặp lại]
Thay vì là một hàm,
class C: @classmethod def f[cls, arg1, arg2]: ...136 thực sự là một loại trình tự có thể thay đổi, như được ghi lại trong Danh sách và Sequence Types — list, tuple, range.người dân địa phương[]¶
Cập nhật và trả về một từ điển đại diện cho bảng ký hiệu cục bộ hiện tại. Các biến miễn phí được trả về bởi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65 khi nó được gọi trong các khối chức năng, nhưng không phải trong các khối lớp. Lưu ý rằng ở cấp độ mô-đun,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65 và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']62 là cùng một từ điển
Ghi chú
Nội dung của từ điển này không nên được sửa đổi;
map[chức năng , có thể lặp lại , *có thể lặp lại]¶Trả về một trình vòng lặp áp dụng hàm cho mọi mục có thể lặp lại, mang lại kết quả. Nếu các đối số lặp bổ sung được truyền, hàm phải nhận nhiều đối số đó và được áp dụng song song cho các mục từ tất cả các lần lặp. Với nhiều lần lặp, trình lặp dừng khi hết lần lặp ngắn nhất. Đối với các trường hợp đầu vào hàm đã được sắp xếp thành các bộ đối số, hãy xem
class C: @classmethod def f[cls, arg1, arg2]: ...13tối đa[có thể lặp lại , * , key=Không có] ¶ tối đa[có thể lặp lại , * , mặc định , key=Không có]max[arg1 , arg2 , *args , key=Không có]
Trả về mục lớn nhất trong một lần lặp hoặc mục lớn nhất trong hai hoặc nhiều đối số
Nếu một đối số vị trí được cung cấp, thì đó phải là một có thể lặp lại . Mục lớn nhất trong iterable được trả về. Nếu hai hoặc nhiều đối số vị trí được cung cấp, đối số vị trí lớn nhất được trả về.
Có hai đối số chỉ từ khóa tùy chọn. Đối số key chỉ định hàm sắp xếp một đối số như được sử dụng cho
class C: @classmethod def f[cls, arg1, arg2]: ...14. Đối số mặc định chỉ định một đối tượng sẽ trả về nếu iterable được cung cấp trống. Nếu iterable trống và mặc định không được cung cấp, thì một
class C: @classmethod def f[cls, arg1, arg2]: ...663 sẽ xuất hiện
Nếu nhiều mục là tối đa, hàm trả về mục đầu tiên gặp phải. Điều này phù hợp với các công cụ bảo quản tính ổn định sắp xếp khác như
class C: @classmethod def f[cls, arg1, arg2]: ...16 và
class C: @classmethod def f[cls, arg1, arg2]: ...17
Mới trong phiên bản 3. 4. Đối số chỉ từ khóa mặc định.
Đã thay đổi trong phiên bản 3. 8. Khóa có thể là
class C: @classmethod def f[cls, arg1, arg2]: ...683. lớp chế độ xem bộ nhớ[đối tượng]
Trả về đối tượng “chế độ xem bộ nhớ” được tạo từ đối số đã cho. Xem Chế độ xem bộ nhớ để biết thêm thông tin.
phút[có thể lặp lại , * , key=Không] ¶ phút[có thể lặp lại , * , mặc định , phím=Không]min[arg1 , arg2 , *args , key=Không có]Trả về mục nhỏ nhất trong một lần lặp hoặc mục nhỏ nhất trong hai hoặc nhiều đối số
Nếu một đối số vị trí được cung cấp, thì đó phải là một có thể lặp lại . Mục nhỏ nhất trong iterable được trả về. Nếu hai hoặc nhiều đối số vị trí được cung cấp, đối số vị trí nhỏ nhất được trả về.
Có hai đối số chỉ từ khóa tùy chọn. Đối số key chỉ định hàm sắp xếp một đối số như được sử dụng cho
class C: @classmethod def f[cls, arg1, arg2]: ...14. Đối số mặc định chỉ định một đối tượng sẽ trả về nếu iterable được cung cấp trống. Nếu iterable trống và mặc định không được cung cấp, thì một
class C: @classmethod def f[cls, arg1, arg2]: ...663 sẽ xuất hiện
Nếu nhiều mục là tối thiểu, hàm trả về mục đầu tiên gặp phải. Điều này phù hợp với các công cụ bảo quản tính ổn định sắp xếp khác như
class C: @classmethod def f[cls, arg1, arg2]: ...21 và
class C: @classmethod def f[cls, arg1, arg2]: ...22
Mới trong phiên bản 3. 4. Đối số chỉ từ khóa mặc định.
Đã thay đổi trong phiên bản 3. 8. Khóa có thể là
class C: @classmethod def f[cls, arg1, arg2]: ...683. next[trình lặp] ¶ tiếp theo[trình lặp , mặc định]
Truy xuất mục tiếp theo từ trình lặp bằng cách gọi phương thức
class C: @classmethod def f[cls, arg1, arg2]: ...155 của nó. Nếu giá trị mặc định được đưa ra, nó sẽ được trả về nếu bộ vòng lặp đã cạn kiệt, nếu không thì
class C: @classmethod def f[cls, arg1, arg2]: ...03 được nâng lên. lớp đối tượng¶
Trả lại một đối tượng đặc biệt mới.
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']13 là cơ sở cho tất cả các lớp. Nó có các phương thức phổ biến cho tất cả các phiên bản của các lớp Python. Chức năng này không chấp nhận bất kỳ đối số
Ghi chú
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']13 không có
class C: @classmethod def f[cls, arg1, arg2]: ...145, vì vậy bạn không thể gán các thuộc tính tùy ý cho một thể hiện của lớp
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']13oct[x]¶
Chuyển đổi một số nguyên thành một chuỗi bát phân có tiền tố là “0o”. Kết quả là một biểu thức Python hợp lệ. Nếu x không phải là một đối tượng
class C: @classmethod def f[cls, arg1, arg2]: ...621 của Python, thì nó phải xác định một phương thức
class C: @classmethod def f[cls, arg1, arg2]: ...622 trả về một số nguyên. Ví dụ
class C: @classmethod def f[cls, arg1, arg2]: ...65
Nếu bạn muốn chuyển đổi một số nguyên thành một chuỗi bát phân có tiền tố “0o” hoặc không, bạn có thể sử dụng một trong hai cách sau
class C: @classmethod def f[cls, arg1, arg2]: ...66
Xem thêm
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69 để biết thêm thông tin
mở[tệp , chế độ='r' , đệm=- 1 , mã hóa=Không có , lỗi=Không có , dòng mới=Không có , closefd=Đúng , người mở=Không có]¶
Mở tệp và trả về đối tượng tệp tương ứng . Nếu tệp không thể mở được, một
class C: @classmethod def f[cls, arg1, arg2]: ...33 sẽ xuất hiện. Xem Đọc và ghi tệp để biết thêm ví dụ về cách sử dụng chức năng này.
tệp là một đối tượng dạng đường dẫn cung cấp tên đường dẫn [tuyệt đối hoặc liên quan đến thư mục làm việc hiện tại] của tệp sẽ được mở hoặc . [Nếu một bộ mô tả tệp được cung cấp, nó sẽ bị đóng khi đối tượng I/O được trả về bị đóng trừ khi closefd được đặt thành
class C: @classmethod def f[cls, arg1, arg2]: ...614. ]
chế độ là một chuỗi tùy chọn chỉ định chế độ mở tệp. Nó mặc định là
class C: @classmethod def f[cls, arg1, arg2]: ...35 có nghĩa là mở để đọc ở chế độ văn bản. Các giá trị phổ biến khác là
class C: @classmethod def f[cls, arg1, arg2]: ...36 để ghi [cắt bớt tệp nếu nó đã tồn tại],
class C: @classmethod def f[cls, arg1, arg2]: ...37 để tạo độc quyền và
class C: @classmethod def f[cls, arg1, arg2]: ...659 để nối thêm [trên một số hệ thống Unix, có nghĩa là tất cả các thao tác ghi sẽ nối vào cuối tệp bất kể vị trí tìm kiếm hiện tại . Ở chế độ văn bản, nếu mã hóa không được chỉ định thì mã hóa được sử dụng phụ thuộc vào nền tảng.
class C: @classmethod def f[cls, arg1, arg2]: ...39 được gọi để lấy mã hóa miền địa phương hiện tại. [Để đọc và ghi byte thô, hãy sử dụng chế độ nhị phân và để mã hóa không xác định. ] Các chế độ khả dụng là
Tính cách
Nghĩa
class C: @classmethod def f[cls, arg1, arg2]: ...35
mở để đọc [mặc định]
class C: @classmethod def f[cls, arg1, arg2]: ...36
mở để viết, cắt bớt tệp trước
class C: @classmethod def f[cls, arg1, arg2]: ...37
mở để tạo độc quyền, không thành công nếu tệp đã tồn tại
class C: @classmethod def f[cls, arg1, arg2]: ...659
mở để viết, thêm vào cuối tệp nếu nó tồn tại
class C: @classmethod def f[cls, arg1, arg2]: ...44
chế độ nhị phân
class C: @classmethod def f[cls, arg1, arg2]: ...45
chế độ văn bản [mặc định]
class C: @classmethod def f[cls, arg1, arg2]: ...195
mở để cập nhật [đọc và viết]
Chế độ mặc định là
class C: @classmethod def f[cls, arg1, arg2]: ...35 [mở để đọc văn bản, một từ đồng nghĩa của
class C: @classmethod def f[cls, arg1, arg2]: ...48]. Chế độ
class C: @classmethod def f[cls, arg1, arg2]: ...49 và
class C: @classmethod def f[cls, arg1, arg2]: ...50 mở và cắt bớt tệp. Chế độ
class C: @classmethod def f[cls, arg1, arg2]: ...51 và
class C: @classmethod def f[cls, arg1, arg2]: ...52 mở tệp mà không cắt bớt
Như đã đề cập trong Tổng quan , Python phân biệt giữa I/O nhị phân và văn bản. Các tệp được mở ở chế độ nhị phân [bao gồm cả
class C: @classmethod def f[cls, arg1, arg2]: ...44 trong đối số chế độ] trả về nội dung dưới dạng đối tượng
class C: @classmethod def f[cls, arg1, arg2]: ...645 mà không cần giải mã. Ở chế độ văn bản [mặc định hoặc khi
class C: @classmethod def f[cls, arg1, arg2]: ...45 được bao gồm trong đối số chế độ], nội dung của tệp được trả về dưới dạng
class C: @classmethod def f[cls, arg1, arg2]: ...56, các byte đã được giải mã lần đầu bằng mã hóa phụ thuộc vào nền tảng hoặc sử dụng mã hóa được chỉ định nếu được cung cấp.
Ghi chú
Python không phụ thuộc vào khái niệm tệp văn bản của hệ điều hành cơ bản;
đệm là một số nguyên tùy chọn được sử dụng để đặt chính sách đệm. Vượt qua 0 để tắt bộ đệm [chỉ được phép ở chế độ nhị phân], 1 để chọn bộ đệm dòng [chỉ có thể sử dụng ở chế độ văn bản] và một số nguyên > 1 để biểu thị kích thước tính bằng byte của bộ đệm khối có kích thước cố định. Lưu ý rằng việc chỉ định kích thước bộ đệm theo cách này áp dụng cho I/O được đệm nhị phân, nhưng
class C: @classmethod def f[cls, arg1, arg2]: ...57 [i. e. , các tệp được mở bằng
class C: @classmethod def f[cls, arg1, arg2]: ...58] sẽ có một bộ đệm khác. Để vô hiệu hóa bộ đệm trong
class C: @classmethod def f[cls, arg1, arg2]: ...57, hãy cân nhắc sử dụng cờ
class C: @classmethod def f[cls, arg1, arg2]: ...60 cho
class C: @classmethod def f[cls, arg1, arg2]: ...61. Khi không đưa ra đối số đệm, chính sách đệm mặc định hoạt động như sau
Các tệp nhị phân được đệm trong các khối có kích thước cố định; . Trên nhiều hệ thống, bộ đệm thường dài 4096 hoặc 8192 byte
Tệp văn bản “tương tác” [tệp mà
class C: @classmethod def f[cls, arg1, arg2]: ...
63 trả vềclass C: @classmethod def f[cls, arg1, arg2]: ...
609] sử dụng bộ đệm dòng. Các tệp văn bản khác sử dụng chính sách được mô tả ở trên cho các tệp nhị phân
encoding là tên của mã hóa được sử dụng để giải mã hoặc mã hóa tệp. Điều này chỉ nên được sử dụng trong chế độ văn bản. Mã hóa mặc định phụ thuộc vào nền tảng [bất kỳ giá trị nào mà
class C: @classmethod def f[cls, arg1, arg2]: ...39 trả về], nhưng bất kỳ mã hóa văn bản nào được Python hỗ trợ đều có thể được sử dụng. Xem mô-đun
class C: @classmethod def f[cls, arg1, arg2]: ...66 để biết danh sách mã hóa được hỗ trợ.
lỗi là một chuỗi tùy chọn chỉ định cách xử lý lỗi mã hóa và giải mã—không thể sử dụng chuỗi này trong chế độ nhị phân. Có sẵn nhiều trình xử lý lỗi tiêu chuẩn [được liệt kê trong Trình xử lý lỗi ], mặc dù bất kỳ tên xử lý lỗi nào đã được đăng ký với
class C: @classmethod def f[cls, arg1, arg2]: ...67 cũng hợp lệ. Tên tiêu chuẩn bao gồm.
class C: @classmethod def f[cls, arg1, arg2]: ...
68 để đưa ra một ngoại lệclass C: @classmethod def f[cls, arg1, arg2]: ...
663 nếu có lỗi mã hóa. Giá trị mặc định củaclass C: @classmethod def f[cls, arg1, arg2]: ...
683 có tác dụng tương tựclass C: @classmethod def f[cls, arg1, arg2]: ...
71 bỏ qua lỗi. Lưu ý rằng bỏ qua lỗi mã hóa có thể dẫn đến mất dữ liệuclass C: @classmethod def f[cls, arg1, arg2]: ...
72 khiến một điểm đánh dấu thay thế [chẳng hạn nhưclass C: @classmethod def f[cls, arg1, arg2]: ...
73] được chèn vào nơi có dữ liệu không đúng định dạngclass C: @classmethod def f[cls, arg1, arg2]: ...
74 sẽ đại diện cho bất kỳ byte không chính xác nào dưới dạng đơn vị mã thay thế thấp, từ U+DC80 đến U+DCFF. Các đơn vị mã thay thế này sau đó sẽ được chuyển trở lại thành các byte giống nhau khi trình xử lý lỗiclass C: @classmethod def f[cls, arg1, arg2]: ...
75 được sử dụng khi ghi dữ liệu. Điều này hữu ích để xử lý các tệp ở dạng mã hóa không xác địnhclass C: @classmethod def f[cls, arg1, arg2]: ...
76 chỉ được hỗ trợ khi ghi vào tệp. Các ký tự không được mã hóa hỗ trợ được thay thế bằng tham chiếu ký tự XML thích hợpclass C: @classmethod def f[cls, arg1, arg2]: ...
77________ 678 thay thế dữ liệu không đúng định dạng bằng chuỗi thoát dấu gạch chéo ngược Python
class C: @classmethod def f[cls, arg1, arg2]: ...
79 [cũng chỉ được hỗ trợ khi viết] thay thế các ký tự không được hỗ trợ bằng chuỗi thoátclass C: @classmethod def f[cls, arg1, arg2]: ...
80
dòng mới xác định cách phân tích các ký tự dòng mới từ luồng. Nó có thể là ________ 6683, ________ 682, ________ 683, _______ 684 và
class C: @classmethod def f[cls, arg1, arg2]: ...85. Nó hoạt động như sau
Khi đọc đầu vào từ luồng, nếu dòng mới là
class C: @classmethod def f[cls, arg1, arg2]: ...
683, chế độ dòng mới chung được bật. Các dòng trong đầu vào có thể kết thúc bằngclass C: @classmethod def f[cls, arg1, arg2]: ...
83,class C: @classmethod def f[cls, arg1, arg2]: ...
84 hoặcclass C: @classmethod def f[cls, arg1, arg2]: ...
85 và những dòng này được dịch thànhclass C: @classmethod def f[cls, arg1, arg2]: ...
83 trước khi được trả lại cho người gọi. Nếu làclass C: @classmethod def f[cls, arg1, arg2]: ...
82, chế độ dòng mới chung được bật, nhưng kết thúc dòng được trả lại cho trình gọi chưa được dịch. Nếu nó có bất kỳ giá trị pháp lý nào khác, các dòng đầu vào chỉ được kết thúc bởi chuỗi đã cho và kết thúc dòng được trả về cho người gọi chưa được dịchKhi ghi đầu ra vào luồng, nếu dòng mới là
class C: @classmethod def f[cls, arg1, arg2]: ...
683, mọi ký tựclass C: @classmethod def f[cls, arg1, arg2]: ...
83 được ghi sẽ được dịch sang dấu phân cách dòng mặc định của hệ thống,class C: @classmethod def f[cls, arg1, arg2]: ...
94. Nếu dòng mới làclass C: @classmethod def f[cls, arg1, arg2]: ...
82 hoặcclass C: @classmethod def f[cls, arg1, arg2]: ...
83, không có bản dịch nào diễn ra. Nếu dòng mới là bất kỳ giá trị pháp lý nào khác, bất kỳ ký tựclass C: @classmethod def f[cls, arg1, arg2]: ...
83 nào được viết sẽ được dịch sang chuỗi đã cho
Nếu closefd là
class C: @classmethod def f[cls, arg1, arg2]: ...614 và một bộ mô tả tệp thay vì tên tệp đã được cung cấp, bộ mô tả tệp cơ bản sẽ được giữ mở khi đóng tệp. Nếu tên tệp được cung cấp closefd phải là
class C: @classmethod def f[cls, arg1, arg2]: ...609 [mặc định];
Có thể sử dụng công cụ mở tùy chỉnh bằng cách chuyển một công cụ mở có thể gọi được. Bộ mô tả tệp cơ bản cho đối tượng tệp sau đó được lấy bằng cách gọi trình mở với [tệp, cờ]. trình mở phải trả về một bộ mô tả tệp đang mở [chuyển
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']600 vì trình mở dẫn đến chức năng tương tự như chuyển
class C: @classmethod def f[cls, arg1, arg2]: ...683]
Tệp mới tạo không thể kế thừa .
Ví dụ sau sử dụng tham số dir_fd của hàm
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']602 để mở một tệp liên quan đến một thư mục nhất định.
class C: @classmethod def f[cls, arg1, arg2]: ...67
Loại đối tượng tệp được trả về bởi hàm
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']63 tùy thuộc vào chế độ. Khi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']63 được sử dụng để mở tệp ở chế độ văn bản [_______ 636, _______ 635, _______ 1607, _______ 648, v.v. ], nó trả về một lớp con của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']609 [cụ thể là
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']610]. Khi được sử dụng để mở tệp ở chế độ nhị phân có đệm, lớp được trả về là lớp con của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']611. Lớp chính xác khác nhau. ở chế độ đọc nhị phân, nó trả về một
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']612; . Khi bộ đệm bị tắt, luồng thô, một lớp con của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']615,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']616, được trả về.
Xem thêm các mô-đun xử lý tệp, chẳng hạn như ________ 1617, ________ 1618 [trong đó
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']63 được khai báo],
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']620,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']621,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']622 và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']623
Tăng sự kiện kiểm tra
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']624 với các đối số
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']625,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']626,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']627.
Các đối số
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']626 và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']627 có thể đã được sửa đổi hoặc suy ra từ cuộc gọi ban đầu
Thay đổi trong phiên bản 3. 3
Tham số mở đã được thêm vào
Chế độ
class C: @classmethod def f[cls, arg1, arg2]: ...
37 đã được thêm vào>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
631 đã từng được nuôi dưỡng, bây giờ nó là bí danh củaclass C: @classmethod def f[cls, arg1, arg2]: ...
33>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
633 hiện được nâng lên nếu tệp được mở ở chế độ tạo độc quyền [class C: @classmethod def f[cls, arg1, arg2]: ...
37] đã tồn tại
Thay đổi trong phiên bản 3. 4
Tệp hiện không thể kế thừa
Thay đổi trong phiên bản 3. 5
Nếu cuộc gọi hệ thống bị gián đoạn và trình xử lý tín hiệu không đưa ra ngoại lệ, thì chức năng này sẽ thử lại cuộc gọi hệ thống thay vì đưa ra ngoại lệ
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
635 [xem PEP 475 để biết lý do]Trình xử lý lỗi
class C: @classmethod def f[cls, arg1, arg2]: ...
79 đã được thêm vào
Thay đổi trong phiên bản 3. 6
Đã thêm hỗ trợ để chấp nhận các đối tượng triển khai
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
637Trên Windows, mở bộ đệm bảng điều khiển có thể trả về một lớp con của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
615 khác với>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
616
Đã thay đổi trong phiên bản 3. 11. Chế độ
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']640 đã bị xóa. ord[c]¶
Đưa ra một chuỗi đại diện cho một ký tự Unicode, trả về một số nguyên đại diện cho điểm mã Unicode của ký tự đó. Ví dụ:
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']641 trả về số nguyên
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']642 và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']643 [ký hiệu Euro] trả về
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']644. Đây là nghịch đảo của
class C: @classmethod def f[cls, arg1, arg2]: ...6pow[base , exp , mod=Không có]¶
Trả lại cơ sở cho điểm kinh nghiệm sức mạnh; . Dạng hai đối số
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']647 tương đương với việc sử dụng toán tử lũy thừa.
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']648
Các đối số phải có kiểu số. Với các loại toán hạng hỗn hợp, các quy tắc cưỡng chế cho các toán tử số học nhị phân được áp dụng. Đối với toán hạng
class C: @classmethod def f[cls, arg1, arg2]: ...621, kết quả có cùng kiểu với toán hạng [sau khi ép buộc] trừ khi đối số thứ hai là âm; . Ví dụ,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']650 trả về
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']651, nhưng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']652 trả về
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']653. Đối với cơ số âm của loại
class C: @classmethod def f[cls, arg1, arg2]: ...621 hoặc
class C: @classmethod def f[cls, arg1, arg2]: ...113 và số mũ không nguyên, một kết quả phức tạp được đưa ra. Ví dụ,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']656 trả về một giá trị gần với
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']657
Đối với cơ sở toán hạng
class C: @classmethod def f[cls, arg1, arg2]: ...621 và exp, nếu có mod, mod cũng phải là kiểu số nguyên và mod phải khác không. Nếu có mod và exp âm, cơ sở phải tương đối nguyên tố với mod. Trong trường hợp đó,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']659 được trả về, trong đó inv_base là nghịch đảo của mod modulo cơ sở
Đây là một ví dụ về tính toán nghịch đảo cho
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']660 modulo
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']642
class C: @classmethod def f[cls, arg1, arg2]: ...68
Đã thay đổi trong phiên bản 3. 8. Đối với toán hạng
class C: @classmethod def f[cls, arg1, arg2]: ...621, dạng ba đối số của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']663 hiện cho phép đối số thứ hai là số âm, cho phép tính toán nghịch đảo mô-đun.
Đã thay đổi trong phiên bản 3. 8. Cho phép đối số từ khóa. Trước đây, chỉ các đối số vị trí được hỗ trợ.
In các đối tượng vào tệp luồng văn bản, được phân tách bằng sep và theo sau là end. sep, end, file và flush, nếu có, phải được cung cấp dưới dạng đối số từ khóa
Tất cả các đối số không phải từ khóa được chuyển đổi thành các chuỗi như
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67 và được ghi vào luồng, được phân tách bằng sep và theo sau là kết thúc. Cả sep và end đều phải là chuỗi; . Nếu không có đối tượng nào được đưa ra,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66 sẽ chỉ viết kết thúc
Đối số tệp phải là một đối tượng có phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']667; . Vì các đối số in được chuyển thành chuỗi văn bản, nên không thể sử dụng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']66 với các đối tượng tệp chế độ nhị phân. Đối với những thứ này, hãy sử dụng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']671 thay thế
Việc đầu ra có được lưu vào bộ đệm hay không thường được xác định bởi tệp, nhưng nếu đối số từ khóa tuôn ra là đúng, thì luồng bị buộc phải xóa
Đã thay đổi trong phiên bản 3. 3. Đã thêm đối số từ khóa flush.
lớp thuộc tính[fget=Không , fset=Không , fdel=Không , doc=Không có]¶Trả về thuộc tính thuộc tính
fget là một chức năng để nhận một giá trị thuộc tính. fset là một chức năng để thiết lập một giá trị thuộc tính. fdel là một chức năng để xóa một giá trị thuộc tính. Và doc tạo một chuỗi tài liệu cho thuộc tính
Cách sử dụng điển hình là xác định thuộc tính được quản lý
class C: @classmethod def f[cls, arg1, arg2]: ...115
class C: @classmethod def f[cls, arg1, arg2]: ...69
Nếu c là một thể hiện của C, thì
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']673 sẽ gọi getter,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']674 sẽ gọi setter và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']675 là deleter
Nếu được cung cấp, doc sẽ là chuỗi tài liệu của thuộc tính thuộc tính. Nếu không, thuộc tính sẽ sao chép chuỗi tài liệu của fget [nếu nó tồn tại]. Điều này cho phép dễ dàng tạo các thuộc tính chỉ đọc bằng cách sử dụng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67 làm trang trí .
class C: @classmethod def f[cls, arg1, arg2]: ...10
Trình trang trí
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']677 biến phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']678 thành một "getter" cho thuộc tính chỉ đọc có cùng tên và nó đặt chuỗi tài liệu cho điện áp thành "Lấy điện áp hiện tại. ”
Một đối tượng thuộc tính có các phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']679,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']680 và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']681 có thể sử dụng làm trình trang trí để tạo một bản sao của thuộc tính với hàm truy cập tương ứng được đặt thành hàm được trang trí. Điều này được giải thích tốt nhất với một ví dụ
class C: @classmethod def f[cls, arg1, arg2]: ...11
Mã này hoàn toàn tương đương với ví dụ đầu tiên. Đảm bảo cung cấp cho các chức năng bổ sung cùng tên với thuộc tính ban đầu [
class C: @classmethod def f[cls, arg1, arg2]: ...115 trong trường hợp này. ]
Đối tượng thuộc tính được trả về cũng có các thuộc tính
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']683,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']684 và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']685 tương ứng với các đối số hàm tạo
Đã thay đổi trong phiên bản 3. 5. Các chuỗi tài liệu của các đối tượng thuộc tính hiện có thể ghi được.
lớp phạm vi[dừng]lớp phạm vi[bắt đầu , dừng , bước=1]Thay vì là một hàm,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']686 thực sự là một loại trình tự bất biến, như được ghi lại trong Phạm vi và Sequence Types — list, tuple, range.repr[đối tượng]¶
Trả về một chuỗi chứa một đại diện có thể in được của một đối tượng. Đối với nhiều loại, hàm này cố gắng trả về một chuỗi sẽ tạo ra một đối tượng có cùng giá trị khi được chuyển đến
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65; . Một lớp có thể kiểm soát những gì hàm này trả về cho các phiên bản của nó bằng cách xác định phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']688. Nếu không truy cập được
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']689, chức năng này sẽ tăng
class C: @classmethod def f[cls, arg1, arg2]: ...641đảo ngược[seq]¶
Trả về một trình lặp ngược . seq phải là một đối tượng có phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']691 hoặc hỗ trợ giao thức trình tự [phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']692 và phương thức
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']99 với các đối số nguyên bắt đầu từ
class C: @classmethod def f[cls, arg1, arg2]: ...692]. vòng[số , nchữ số=Không có]¶
Trả về số được làm tròn chính xác đến n chữ số sau dấu thập phân. Nếu ndigits bị bỏ qua hoặc là
class C: @classmethod def f[cls, arg1, arg2]: ...683, nó sẽ trả về số nguyên gần nhất với đầu vào của nó
Đối với các loại tích hợp hỗ trợ
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']61, các giá trị được làm tròn thành bội số gần nhất của 10 thành lũy thừa trừ n chữ số; . Mọi giá trị số nguyên đều hợp lệ cho n chữ số [dương, 0 hoặc âm]. Giá trị trả về là một số nguyên nếu ndigits bị bỏ qua hoặc
class C: @classmethod def f[cls, arg1, arg2]: ...683. Mặt khác, giá trị trả về có cùng loại với số
Đối với một đối tượng Python chung
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']603,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']604 ủy quyền cho
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']605
Ghi chú
Hành vi của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']61 đối với số float có thể gây ngạc nhiên. ví dụ:
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']607 cho
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']608 thay vì dự kiến là
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']609. Đây không phải là một lỗi. đó là kết quả của thực tế là hầu hết các phân số thập phân không thể được biểu diễn chính xác dưới dạng số float. Xem Số học dấu chấm động. Các vấn đề và hạn chế để biết thêm thông tin. lớp đặtlớp đặt[có thể lặp lại]
Trả về một đối tượng
class C: @classmethod def f[cls, arg1, arg2]: ...137 mới, tùy chọn với các phần tử được lấy từ iterable.
class C: @classmethod def f[cls, arg1, arg2]: ...137 là một lớp tích hợp. Xem
class C: @classmethod def f[cls, arg1, arg2]: ...137 và Các loại thiết lập — set, freezeset để biết tài liệu về lớp này.
Đối với các vùng chứa khác, hãy xem các lớp
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']16,
class C: @classmethod def f[cls, arg1, arg2]: ...136,
class C: @classmethod def f[cls, arg1, arg2]: ...138 và
class C: @classmethod def f[cls, arg1, arg2]: ...134 tích hợp, cũng như mô-đun
class C: @classmethod def f[cls, arg1, arg2]: ...139setattr[đối tượng , tên , giá trị]¶
Đây là đối tác của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']61. Các đối số là một đối tượng, một chuỗi và một giá trị tùy ý. Chuỗi có thể đặt tên cho một thuộc tính hiện có hoặc một thuộc tính mới. Hàm gán giá trị cho thuộc tính, miễn là đối tượng cho phép. Ví dụ,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']619 tương đương với
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']620
tên không cần phải là số nhận dạng Python như được định nghĩa trong Số nhận dạng và từ khóa trừ khi đối tượng chọn thực thi điều đó, chẳng hạn như trong một
class C: @classmethod def f[cls, arg1, arg2]: ...142 tùy chỉnh . Một thuộc tính có tên không phải là mã định danh sẽ không thể truy cập được bằng cách sử dụng ký hiệu dấu chấm, nhưng có thể truy cập được thông qua
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']61, v.v.
Ghi chú
Vì việc xáo trộn tên riêng xảy ra tại thời điểm biên dịch, người ta phải xáo trộn tên của một thuộc tính riêng [các thuộc tính có hai dấu gạch dưới ở đầu] theo cách thủ công để .
lớp lát[dừng] ¶ lớp lát[bắt đầu , dừng , bước=1]Trả về một slice đối tượng đại diện cho tập hợp các chỉ số được chỉ định bởi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']625. Đối số bắt đầu và bước mặc định là
class C: @classmethod def f[cls, arg1, arg2]: ...683. Các đối tượng lát cắt có các thuộc tính dữ liệu chỉ đọc
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']627,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']628 và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']629 chỉ trả về các giá trị đối số [hoặc giá trị mặc định của chúng]. Chúng không có chức năng rõ ràng nào khác; . Các đối tượng lát cũng được tạo khi sử dụng cú pháp lập chỉ mục mở rộng. Ví dụ.
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']630 hoặc
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']631. Xem
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']632 để biết phiên bản thay thế trả về trình vòng lặp. đã sắp xếp[có thể lặp lại , / , * , phím=Không , đảo ngược=Sai]¶
Trả về một danh sách được sắp xếp mới từ các mục trong iterable
Có hai đối số tùy chọn phải được chỉ định làm đối số từ khóa
key chỉ định chức năng của một đối số được sử dụng để trích xuất khóa so sánh từ mỗi phần tử trong iterable [ví dụ:
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']633]. Giá trị mặc định là
class C: @classmethod def f[cls, arg1, arg2]: ...683 [so sánh trực tiếp các phần tử]
đảo ngược là một giá trị boolean. Nếu được đặt thành
class C: @classmethod def f[cls, arg1, arg2]: ...609, thì các thành phần danh sách được sắp xếp như thể mỗi phép so sánh được đảo ngược
Sử dụng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']636 để chuyển đổi chức năng cmp kiểu cũ thành chức năng chính
Chức năng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']65 tích hợp được đảm bảo ổn định. Một sắp xếp ổn định nếu nó đảm bảo không thay đổi thứ tự tương đối của các phần tử được so sánh bằng nhau — điều này hữu ích cho việc sắp xếp theo nhiều lần [ví dụ: sắp xếp theo bộ phận, sau đó theo bậc lương]
Thuật toán sắp xếp chỉ sử dụng so sánh
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']638 giữa các mục. Mặc dù xác định một phương pháp
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']639 là đủ để sắp xếp, PEP 8 khuyến nghị rằng tất cả sáu so sánh phong phú đều được triển khai. Điều này sẽ giúp tránh lỗi khi sử dụng cùng một dữ liệu với các công cụ đặt hàng khác, chẳng hạn như
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67 dựa trên một phương pháp cơ bản khác. Việc triển khai tất cả sáu phép so sánh cũng giúp tránh nhầm lẫn đối với các phép so sánh kiểu hỗn hợp có thể phản ánh phương pháp
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']641.
Để biết ví dụ sắp xếp và hướng dẫn sắp xếp ngắn gọn, hãy xem Sắp xếp CÁCH .
@phương thức tĩnh¶Chuyển đổi một phương thức thành một phương thức tĩnh
Một phương thức tĩnh không nhận được đối số đầu tiên ngầm định. Để khai báo một phương thức tĩnh, hãy sử dụng thành ngữ này
class C: @classmethod def f[cls, arg1, arg2]: ...12
Biểu mẫu
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']642 là một hàm trang trí – xem Định nghĩa hàm for details.
Một phương thức tĩnh có thể được gọi trên lớp [chẳng hạn như
class C: @classmethod def f[cls, arg1, arg2]: ...665] hoặc trên một thể hiện [chẳng hạn như
class C: @classmethod def f[cls, arg1, arg2]: ...666]. Hơn nữa, chúng có thể được gọi là các hàm thông thường [chẳng hạn như
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']645]
Các phương thức tĩnh trong Python tương tự như các phương thức được tìm thấy trong Java hoặc C++. Ngoài ra, hãy xem
class C: @classmethod def f[cls, arg1, arg2]: ...7 để biết một biến thể hữu ích để tạo các hàm tạo lớp thay thế
Giống như tất cả các bộ trang trí, cũng có thể gọi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']647 như một hàm thông thường và làm điều gì đó với kết quả của nó. Điều này là cần thiết trong một số trường hợp khi bạn cần tham chiếu đến một hàm từ thân lớp và bạn muốn tránh việc tự động chuyển đổi thành phương thức thể hiện. Đối với những trường hợp này, hãy sử dụng thành ngữ này
class C: @classmethod def f[cls, arg1, arg2]: ...13
Để biết thêm thông tin về các phương thức tĩnh, hãy xem Hệ thống phân cấp loại tiêu chuẩn .
Đã thay đổi trong phiên bản 3. 10. Các phương thức tĩnh hiện kế thừa các thuộc tính của phương thức [
class C: @classmethod def f[cls, arg1, arg2]: ...669,
class C: @classmethod def f[cls, arg1, arg2]: ...670,
class C: @classmethod def f[cls, arg1, arg2]: ...671,
class C: @classmethod def f[cls, arg1, arg2]: ...672 và
class C: @classmethod def f[cls, arg1, arg2]: ...673], có thuộc tính
class C: @classmethod def f[cls, arg1, arg2]: ...674 mới và hiện có thể gọi được như các hàm thông thường. lớp str[đối tượng='']lớp str[đối tượng=b'' , mã hóa='utf-8' , lỗi='nghiêm ngặt']
Trả về phiên bản
class C: @classmethod def f[cls, arg1, arg2]: ...56 của đối tượng. Xem
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']67 để biết chi tiết
class C: @classmethod def f[cls, arg1, arg2]: ...56 là chuỗi tích hợp sẵn class . Để biết thông tin chung về chuỗi, hãy xem Loại chuỗi văn bản — str . sum[có thể lặp lại , / , bắt đầu=0]¶
Tính tổng bắt đầu và các mục của một lần lặp từ trái sang phải và trả về tổng. Các mục của iterable thường là các số và giá trị bắt đầu không được phép là một chuỗi
Đối với một số trường hợp sử dụng, có những lựa chọn thay thế tốt cho
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']68. Cách ưa thích, nhanh chóng để nối một chuỗi các chuỗi là gọi ____
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']658. Để thêm các giá trị dấu phẩy động với độ chính xác mở rộng, hãy xem
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']659. Để nối một loạt các lần lặp, hãy cân nhắc sử dụng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']660
Đã thay đổi trong phiên bản 3. 8. Tham số bắt đầu có thể được chỉ định làm đối số từ khóa.
hạng siêu ¶ hạng siêu[type , object_or_type=Không có]Trả về một đối tượng proxy ủy thác các cuộc gọi phương thức cho một loại cha hoặc anh chị em. Điều này rất hữu ích để truy cập các phương thức kế thừa đã bị ghi đè trong một lớp
Object_or_type xác định thứ tự giải quyết phương pháp được tìm kiếm. Việc tìm kiếm bắt đầu từ lớp ngay sau loại.
Ví dụ: nếu
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']661 của object_or_type là
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']662 và giá trị của loại là
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']663, thì
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69 tìm kiếm
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']665
Thuộc tính
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']661 của object_or_type liệt kê thứ tự tìm kiếm độ phân giải phương pháp được sử dụng bởi cả
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']61 và
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69. Thuộc tính động và có thể thay đổi bất cứ khi nào hệ thống phân cấp thừa kế được cập nhật
Nếu đối số thứ hai bị bỏ qua, siêu đối tượng được trả về không bị ràng buộc. Nếu đối số thứ hai là một đối tượng, thì
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']669 phải đúng. Nếu đối số thứ hai là một loại, thì
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']670 phải đúng [điều này hữu ích cho các phương thức lớp]
Có hai trường hợp sử dụng điển hình cho siêu. Trong một hệ thống phân cấp lớp với một kế thừa duy nhất, super có thể được sử dụng để chỉ các lớp cha mà không cần đặt tên rõ ràng cho chúng, do đó làm cho mã dễ bảo trì hơn. Việc sử dụng này gần giống với việc sử dụng super trong các ngôn ngữ lập trình khác
Trường hợp sử dụng thứ hai là hỗ trợ đa kế thừa hợp tác trong môi trường thực thi động. Trường hợp sử dụng này là duy nhất đối với Python và không có trong các ngôn ngữ được biên dịch tĩnh hoặc các ngôn ngữ chỉ hỗ trợ kế thừa đơn lẻ. Điều này cho phép triển khai “sơ đồ kim cương” trong đó nhiều lớp cơ sở triển khai cùng một phương thức. Thiết kế tốt chỉ ra rằng các triển khai như vậy có chữ ký gọi giống nhau trong mọi trường hợp [vì thứ tự của các lệnh gọi được xác định trong thời gian chạy, vì thứ tự đó thích ứng với những thay đổi trong hệ thống phân cấp lớp và vì thứ tự đó có thể bao gồm các lớp anh chị em không xác định trước thời gian chạy
Đối với cả hai trường hợp sử dụng, một lệnh gọi siêu lớp điển hình trông như thế này
class C: @classmethod def f[cls, arg1, arg2]: ...14
Ngoài tra cứu phương thức,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69 còn hoạt động để tra cứu thuộc tính. Một trường hợp sử dụng khả thi cho việc này là gọi các bộ mô tả trong lớp cha hoặc lớp anh chị em.
Lưu ý rằng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69 được triển khai như một phần của quy trình ràng buộc để tra cứu thuộc tính chấm rõ ràng, chẳng hạn như
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']673. Nó làm như vậy bằng cách triển khai phương thức
class C: @classmethod def f[cls, arg1, arg2]: ...142 của riêng mình để tìm kiếm các lớp theo thứ tự có thể dự đoán được, hỗ trợ đa kế thừa hợp tác. Theo đó,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69 không được xác định để tra cứu ngầm định bằng cách sử dụng các câu lệnh hoặc toán tử, chẳng hạn như
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']676
Cũng lưu ý rằng, ngoài dạng đối số bằng 0,
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69 không giới hạn việc sử dụng các phương thức bên trong. Dạng hai đối số chỉ định chính xác các đối số và đưa ra các tham chiếu phù hợp. Dạng đối số 0 chỉ hoạt động bên trong một định nghĩa lớp, vì trình biên dịch sẽ điền vào các chi tiết cần thiết để truy xuất chính xác lớp đang được định nghĩa, cũng như truy cập thể hiện hiện tại cho các phương thức thông thường
Để biết các đề xuất thực tế về cách thiết kế các lớp hợp tác bằng cách sử dụng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']69, hãy xem hướng dẫn sử dụng super[]lớp tuplelớp tuple[có thể lặp lại]
Thay vì là một hàm,
class C: @classmethod def f[cls, arg1, arg2]: ...138 thực sự là một loại trình tự bất biến, như được ghi lại trong Tuples và Sequence Types — list, tuple, range.lớp loại[đối tượng] ¶ lớp loại[tên , cơ sở , dict , **kwds]
Với một đối số, trả về loại đối tượng. Giá trị trả về là một đối tượng kiểu và thường là cùng một đối tượng được trả về bởi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']680
Hàm tích hợp sẵn của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']60 được khuyến nghị để kiểm tra loại đối tượng, vì nó tính đến các lớp con
Với ba đối số, trả về một đối tượng kiểu mới. Đây thực chất là một dạng động của câu lệnh
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']682. Chuỗi tên là tên lớp và trở thành thuộc tính
class C: @classmethod def f[cls, arg1, arg2]: ...670. Bộ cơ sở chứa các lớp cơ sở và trở thành thuộc tính
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']684; . Từ điển dict chứa các định nghĩa thuộc tính và phương thức cho thân lớp; . Hai câu lệnh sau tạo các đối tượng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']687 giống hệt nhau
class C: @classmethod def f[cls, arg1, arg2]: ...15
Xem thêm Loại đối tượng .
Các đối số từ khóa được cung cấp cho dạng ba đối số được chuyển đến bộ máy siêu dữ liệu thích hợp [thường là
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']688] giống như cách mà các từ khóa trong định nghĩa lớp [ngoài siêu dữ liệu] sẽ
Xem thêm Tùy chỉnh việc tạo lớp học .
Đã thay đổi trong phiên bản 3. 6. Các lớp con của
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']687 không ghi đè
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']690 có thể không còn sử dụng biểu mẫu một đối số để lấy loại đối tượng. vars[] ¶ vars[đối tượng]
Trả về thuộc tính
class C: @classmethod def f[cls, arg1, arg2]: ...145 cho một mô-đun, lớp, cá thể hoặc bất kỳ đối tượng nào khác có thuộc tính
class C: @classmethod def f[cls, arg1, arg2]: ...145
Các đối tượng như mô-đun và phiên bản có thuộc tính
class C: @classmethod def f[cls, arg1, arg2]: ...145 có thể cập nhật;
Không tranh cãi, _______ 6602 hành động như _______ 365. Lưu ý, từ điển địa phương chỉ hữu ích cho việc đọc vì các cập nhật cho từ điển địa phương bị bỏ qua
Một ngoại lệ
class C: @classmethod def f[cls, arg1, arg2]: ...107 được đưa ra nếu một đối tượng được chỉ định nhưng nó không có thuộc tính
class C: @classmethod def f[cls, arg1, arg2]: ...145 [ví dụ: nếu lớp của nó xác định thuộc tính
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']622]zip[*có thể lặp lại , nghiêm ngặt=Sai]¶
Lặp lại song song nhiều lần lặp, tạo ra các bộ dữ liệu với một mục từ mỗi bộ
Thí dụ
class C: @classmethod def f[cls, arg1, arg2]: ...16
Chính thức hơn.
class C: @classmethod def f[cls, arg1, arg2]: ...603 trả về một bộ lặp gồm các bộ lặp, trong đó bộ thứ i chứa phần tử thứ i từ mỗi bộ lặp đối số
Một cách khác để nghĩ về
class C: @classmethod def f[cls, arg1, arg2]: ...603 là nó biến hàng thành cột và cột thành hàng. Điều này tương tự như chuyển vị một ma trận
class C: @classmethod def f[cls, arg1, arg2]: ...603 lười biếng. Các phần tử sẽ không được xử lý cho đến khi iterable được lặp lại trên, e. g. bởi một vòng lặp
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']604 hoặc bằng cách gói trong một
class C: @classmethod def f[cls, arg1, arg2]: ...136
Một điều cần xem xét là các lần lặp được chuyển đến
class C: @classmethod def f[cls, arg1, arg2]: ...603 có thể có độ dài khác nhau; . Python cung cấp ba cách tiếp cận khác nhau để giải quyết vấn đề này
Theo mặc định,
class C: @classmethod def f[cls, arg1, arg2]: ...
603 dừng khi hết thời gian lặp lại ngắn nhất. Nó sẽ bỏ qua các mục còn lại trong các lần lặp dài hơn, cắt kết quả theo độ dài của lần lặp ngắn nhấtclass C: @classmethod def f[cls, arg1, arg2]: ...
17class C: @classmethod def f[cls, arg1, arg2]: ...
603 thường được sử dụng trong trường hợp các lần lặp được giả định là có độ dài bằng nhau. Trong những trường hợp như vậy, bạn nên sử dụng tùy chọn>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
609. Đầu ra của nó giống nhưclass C: @classmethod def f[cls, arg1, arg2]: ...
603 thông thườngclass C: @classmethod def f[cls, arg1, arg2]: ...
18Không giống như hành vi mặc định, nó kiểm tra xem độ dài của các lần lặp có giống nhau hay không, nâng cao một
class C: @classmethod def f[cls, arg1, arg2]: ...
663 nếu chúng không giống nhauclass C: @classmethod def f[cls, arg1, arg2]: ...
19Nếu không có đối số
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
609, bất kỳ lỗi nào dẫn đến các lần lặp có độ dài khác nhau sẽ bị tắt tiếng, có thể biểu hiện dưới dạng một lỗi khó tìm trong một phần khác của chương trìnhCác lần lặp ngắn hơn có thể được đệm bằng một giá trị không đổi để làm cho tất cả các lần lặp có cùng độ dài. Điều này được thực hiện bởi
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
613
trường hợp cạnh. Với một đối số có thể lặp lại duy nhất,
class C: @classmethod def f[cls, arg1, arg2]: ...603 trả về một trình lặp gồm 1 bộ. Không có đối số, nó trả về một trình vòng lặp trống
Các mẹo và thủ thuật
Thứ tự đánh giá từ trái sang phải của các lần lặp được đảm bảo. Điều này có thể tạo thành một thành ngữ để phân cụm chuỗi dữ liệu thành các nhóm có độ dài n bằng cách sử dụng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
615. Điều này lặp lại cùng một trình lặp>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
616 lần để mỗi bộ dữ liệu đầu ra có kết quả của các lệnh gọi>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
616 đến trình lặp. Điều này có tác dụng chia đầu vào thành các khối có độ dài nclass C: @classmethod def f[cls, arg1, arg2]: ...
603 kết hợp với toán tử>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
619 có thể được sử dụng để giải nén danh sách>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']
0
Đã thay đổi trong phiên bản 3. 10. Đã thêm đối số
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']620. __import__[tên , toàn cầu=Không có , người dân địa phương=Không có , từ danh sách=[] , cấp độ=0]¶
Ghi chú
Đây là một chức năng nâng cao không cần thiết trong lập trình Python hàng ngày, không giống như
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']621
Hàm này được gọi bởi câu lệnh
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']622. Nó có thể được thay thế [bằng cách nhập mô-đun
class C: @classmethod def f[cls, arg1, arg2]: ...158 và gán cho
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']624] để thay đổi ngữ nghĩa của câu lệnh
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']622, nhưng làm như vậy không được khuyến khích vì sử dụng móc nhập [xem PEP 302] thường đơn giản hơn để đạt được các mục tiêu tương tự . Việc sử dụng trực tiếp
class C: @classmethod def f[cls, arg1, arg2]: ...604 cũng không được khuyến khích để ủng hộ
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']621
Hàm nhập tên mô-đun, có khả năng sử dụng toàn cầu và cục bộ đã cho để xác định cách diễn giải tên trong ngữ cảnh gói. Danh sách từ cung cấp tên của các đối tượng hoặc mô hình con nên được nhập từ mô-đun được cung cấp theo tên. Việc triển khai tiêu chuẩn hoàn toàn không sử dụng đối số cục bộ của nó và chỉ sử dụng đối số toàn cầu của nó để xác định ngữ cảnh gói của câu lệnh
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']622
level chỉ định sử dụng nhập khẩu tuyệt đối hay tương đối.
class C: @classmethod def f[cls, arg1, arg2]: ...692 [mặc định] có nghĩa là chỉ thực hiện nhập tuyệt đối. Các giá trị dương cho level cho biết số lượng thư mục mẹ cần tìm kiếm liên quan đến thư mục của mô-đun đang gọi
class C: @classmethod def f[cls, arg1, arg2]: ...604 [xem PEP 328 để biết chi tiết]
Khi biến tên có dạng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']631, thông thường, gói cấp cao nhất [tên cho đến dấu chấm đầu tiên] được trả về, không phải mô-đun được đặt tên theo tên. Tuy nhiên, khi một đối số từ danh sách không trống được đưa ra, mô-đun được đặt tên theo tên được trả về
Ví dụ: câu lệnh
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']632 dẫn đến mã byte giống như mã sau
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']1
Tuyên bố
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']633 dẫn đến cuộc gọi này
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']2
Lưu ý cách
class C: @classmethod def f[cls, arg1, arg2]: ...604 trả về mô-đun cấp cao nhất ở đây vì đây là đối tượng được liên kết với một tên bằng câu lệnh
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']622
Mặt khác, câu lệnh
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']636 dẫn đến
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']3
Ở đây, mô-đun
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']637 được trả về từ
class C: @classmethod def f[cls, arg1, arg2]: ...604. Từ đối tượng này, các tên cần nhập được lấy và gán cho tên tương ứng của chúng
Nếu bạn chỉ muốn nhập một mô-đun [có khả năng nằm trong một gói] theo tên, hãy sử dụng
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']621
Đã thay đổi trong phiên bản 3. 3. Các giá trị âm cho cấp độ không còn được hỗ trợ [điều này cũng thay đổi giá trị mặc định thành 0].
Đã thay đổi trong phiên bản 3. 9. Khi các tùy chọn dòng lệnh
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']640 hoặc
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']641 đang được sử dụng, biến môi trường
>>> format[14, '#b'], format[14, 'b'] ['0b1110', '1110'] >>> f'{14:#b}', f'{14:b}' ['0b1110', '1110']642 hiện bị bỏ qua.
chú thích
1Lưu ý rằng trình phân tích cú pháp chỉ chấp nhận quy ước cuối dòng kiểu Unix. Nếu bạn đang đọc mã từ một tệp, hãy đảm bảo sử dụng chế độ chuyển đổi dòng mới để chuyển đổi các dòng mới kiểu Windows hoặc Mac