Mã nguồn getattr Python

Trình thông dịch Python được tích hợp sẵn một số hàm luôn sẵn sàng. Chúng được liệt kê ở đây theo thứ tự bảng chữ cái

Built-in Functionsabs(x)

Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument is a complex number, its magnitude is returned

all(iterable)

Return True if all elements of the iterable are true (or if the iterable is empty). Equivalent to

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

New in version 2. 5

any(iterable)

Return True if any element of the iterable is true. If the iterable is empty, return False. Equivalent to

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

New in version 2. 5

basestring()

This abstract type is the superclass for and . It cannot be called or instantiated, but it can be used to test whether an object is an instance of or . isinstance(obj, basestring) is equivalent to isinstance(obj, (str, unicode)) .

New in version 2. 3

bin(x)

Convert an integer number to a binary string. The result is a valid Python expression. If x is not a Python object, it has to define an method that returns an integer

New in version 2. 6

bool( [ x ])

Convert a value to a Boolean, using the standard truth testing procedure. If x is false or omitted, this returns ; otherwise it returns . is also a class, which is a subclass of . Class cannot be subclassed further. Its only instances are and

New in version 2. 2. 1

Changed in version 2. 3. If no argument is given, this function returns .

bytearray( [ source [ , encoding [ , errors ]]])

Return a new array of bytes. The type is a mutable sequence of integers in the range 0 <= x < 256. It has most of the usual methods of mutable sequences, described in , as well as most methods that the type has, see

The optional source parameter can be used to initialize the array in a few different ways

  • If it is a string, you must also give the encoding (and optionally, errors) parameters; then converts the string to bytes using
  • If it is an integer, the array will have that size and will be initialized with null bytes
  • If it is an object conforming to the buffer interface, a read-only buffer of the object will be used to initialize the bytes array
  • If it is an iterable, it must be an iterable of integers in the range 0 <= x < 256 , which are used as the initial contents of the array.

Without an argument, an array of size 0 is created

callable(object)

Return if the object argument appears callable, if not. Nếu điều này trả về true, vẫn có khả năng cuộc gọi không thành công, nhưng nếu nó sai, đối tượng gọi sẽ không bao giờ thành công. Note that classes are callable (calling a class returns a new instance); class instances are callable if they have a method

chr(i)

Return a string of one character whose ASCII code is the integer i. For example, chr(97) returns the string 'a' . Đây là nghịch đảo của. The argument must be in the range [0. 255], inclusive; will be raised if i is outside that range. See also .

classmethod(function)

Return a class method for function

A class method receives the class as implicit first argument, just like an instance method receives the instance. To declare a class method, use this idiom

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...

The @classmethod form is a function – see the description of function definitions in for details.

It can be called either on the class (such as C. f() ) or on an instance (such as C(). f() ). The instance is ignored except for its class. If a class method is called for a derived class, the derived class object is passed as the implied first argument.

Class methods are different than C++ or Java static methods. If you want those, see in this section

For more information on class methods, consult the documentation on the standard type hierarchy in

New in version 2. 2

Changed in version 2. 4. Function decorator syntax added.

cmp(x, y)

Compare the two objects x and y and return an integer according to the outcome. The return value is negative if x < y , zero if x == y and strictly positive if x > y .

compile(source, filename, mode [ , flags [ , dont_inherit ]])

Compile the source into a code or AST object. Code objects can be executed by an statement or evaluated by a call to . source can either be a string or an AST object. Refer to the module documentation for information on how to work with AST objects

The filename argument should give the file from which the code was read; pass some recognizable value if it wasn’t read from a file ( ' is commonly used).

The mode argument specifies what kind of code must be compiled; it can be 'exec' if source consists of a sequence of statements, 'eval' if it consists of a single expression, or 'single' if it consists of a single interactive statement (in the latter case, expression statements that evaluate to something other than None will be printed).

The optional arguments flags and dont_inherit control which future statements (see PEP 236) affect the compilation of source. If neither is present (or both are zero) the code is compiled with those future statements that are in effect in the code that is calling compile. If the flags argument is given and dont_inherit is not (or is zero) then the future statements specified by the flags argument are used in addition to those that would be used anyway. Nếu don_inherit là một số nguyên khác 0 thì đối số flags chính là nó – các câu lệnh trong tương lai có hiệu lực xung quanh lệnh gọi biên dịch sẽ bị bỏ qua

Các câu lệnh trong tương lai được chỉ định bởi các bit có thể được OR theo chiều bit với nhau để chỉ định nhiều câu lệnh. Trường bit cần thiết để chỉ định một tính năng nhất định có thể được tìm thấy dưới dạng thuộc tính compiler_flag trên _Feature instance in the module.

Hàm này tăng nếu nguồn đã biên dịch không hợp lệ và nếu nguồn chứa byte rỗng

Ghi chú

Khi biên dịch một chuỗi có mã nhiều dòng trong 'single' hoặc 'eval'< . This is to facilitate detection of incomplete and complete statements in the module. mode, input must be terminated by at least one newline character. This is to facilitate detection of incomplete and complete statements in the module.

Đã thay đổi trong phiên bản 2. 3. The flags and dont_inherit arguments were added.

Changed in version 2. 6. Support for compiling AST objects.

Changed in version 2. 7. Allowed use of Windows and Mac newlines. Also input in 'exec' mode does not have to end in a newline anymore.

complex( [ real [ , imag ]])

Create a complex number with the value real + imag*j or convert a string or number to a complex number. If the first parameter is a string, it will be interpreted as a complex number and the function must be called without a second parameter. The second parameter can never be a string. Each argument may be any numeric type (including complex). If imag is omitted, it defaults to zero and the function serves as a numeric conversion function like , and . If both arguments are omitted, returns 0j .

The complex type is described in

delattr(object, name)

This is a relative of . The arguments are an object and a string. The string must be the name of one of the object’s attributes. The function deletes the named attribute, provided the object allows it. For example, delattr(x, 'foobar') is equivalent to del x. foobar .

dict( [ arg ])

Create a new data dictionary, optionally with items taken from arg. The dictionary type is described in

For other containers see the built in , , and classes, and the module

dir( [ object ])

Without arguments, return the list of names in the current local scope. With an argument, attempt to return a list of valid attributes for that object

If the object has a method named __dir__() , this method will be called and must return the list of attributes. This allows objects that implement a custom or function to customize the way reports their attributes.

If the object does not provide __dir__() , the function tries its best to gather information from the object’s __dict__ attribute, if defined, and from its type object. The resulting list is not necessarily complete, and may be inaccurate when the object has a custom .

The default mechanism behaves differently with different types of objects, as it attempts to produce the most relevant, rather than complete, information

  • If the object is a module object, the list contains the names of the module’s attributes
  • If the object is a type or class object, the list contains the names of its attributes, and recursively of the attributes of its bases
  • Otherwise, the list contains the object’s attributes’ names, the names of its class’s attributes, and recursively of the attributes of its class’s base classes

The resulting list is sorted alphabetically. For example

>>> import struct
>>> dir()   
['__builtins__', '__doc__', '__name__', 'struct']
>>> dir(struct)   
['Struct', '__builtins__', '__doc__', '__file__', '__name__',
 '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
 'unpack', 'unpack_from']
>>> class Foo(object):
..     def __dir__(self):
..         return ["kan", "ga", "roo"]
...
>>> f = Foo()
>>> dir(f)
['ga', 'kan', 'roo']

Ghi chú

Because is supplied primarily as a convenience for use at an interactive prompt, it tries to supply an interesting set of names more than it tries to supply a rigorously or consistently defined set of names, and its detailed behavior may change across releases. For example, metaclass attributes are not in the result list when the argument is a class

divmod(a, b)

Take two (non complex) numbers as arguments and return a pair of numbers consisting of their quotient and remainder when using long division. With mixed operand types, the rules for binary arithmetic operators apply. For plain and long integers, the result is the same as (a // b, a % b) . For floating point numbers the result is (q, a % b) , where q is usually math. floor(a / b) but may be 1 less than that. In any case q * b + a % b is very close to a, if a % b is non-zero it has the same sign as b, and 0 <= abs(a % b) < abs(b) .

Changed in version 2. 3. Using with complex numbers is deprecated.

enumerate(sequence [ , start=0 ])

Return an enumerate object. sequence must be a sequence, an , or some other object which supports iteration. The next() method of the iterator returned by returns a tuple containing a count (from start which defaults to 0) and the corresponding value obtained from iterating over iterable. is useful for obtaining an indexed series. (0, seq[0]) , (1, seq[1]) , (2, seq[2]) , . For example.

>>> for i, season in enumerate(['Spring', 'Summer', 'Fall', 'Winter']):
..     print i, season
0 Spring
1 Summer
2 Fall
3 Winter

New in version 2. 3

New in version 2. 6. The start parameter.

eval(expression [ , toàn cầu [ , locals ]])

The arguments are a string and optional globals and locals. If provided, globals must be a dictionary. If provided, locals can be any mapping object

Changed in version 2. 4. formerly locals was required to be a dictionary.

Đối số biểu thức được phân tích cú pháp và đánh giá dưới dạng biểu thức Python (về mặt kỹ thuật, danh sách điều kiện) bằng cách sử dụng từ điển toàn cục và cục bộ làm không gian tên toàn cầu và cục bộ. If the globals dictionary is present and lacks ‘__builtins__’, the current globals are copied into globals before expression is parsed. This means that expression normally has full access to the standard module and restricted environments are propagated. If the locals dictionary is omitted it defaults to the globals dictionary. Nếu cả hai từ điển bị bỏ qua, biểu thức được thực thi trong môi trường được gọi là. 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ụ

>>> x = 1
>>> print eval('x+1')
2

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 ). 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 'exec' làm đối số chế độ, thì giá trị trả về của ' sẽ là Không có . .

gợi ý. thực thi năng động của câu lệnh được hỗ trợ bởi câu lệnh. Việc thực thi các câu lệnh từ một tệp được hỗ trợ bởi chức năng. Các hàm và trả về từ điển toàn cầu và cục bộ hiện tại, tương ứng, có thể hữu ích để chuyển qua sử dụng bởi hoặc

Xem một hàm có thể đánh giá các chuỗi một cách an toàn với các biểu thức chỉ chứa các ký tự

execfile(filename [ , toàn cầu [ , locals ]])

Hàm này tương tự như câu lệnh, nhưng phân tích tệp thay vì chuỗi. Nó khác với câu lệnh ở chỗ nó không sử dụng quản trị mô-đun — nó đọc tệp vô điều kiện và không tạo mô-đun mới.

Các đối số là tên tệp và hai từ điển tùy chọn. Tệp được phân tích cú pháp và đánh giá dưới dạng một chuỗi các câu lệnh Python (tương tự như một mô-đun) 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ục và cục bộ. 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

Changed in version 2. 4. formerly locals was required to be a dictionary.

Nếu từ điển địa phương bị bỏ qua, nó sẽ mặc định là từ điển toàn cầu. If both dictionaries are omitted, the expression is executed in the environment where is called. The return value is None .

Ghi chú

The default locals act as described for function below. modifications to the default locals dictionary should not be attempted. Pass an explicit locals dictionary if you need to see effects of the code on locals after function returns. cannot be used reliably to modify a function’s locals

file(filename [ , mode [ , bufsize ]])

Constructor function for the type, described further in section . The constructor’s arguments are the same as those of the built-in function described below

When opening a file, it’s preferable to use instead of invoking this constructor directly. is more suited to type testing (for example, writing isinstance(f, file) ).

New in version 2. 2

filter(function, iterable)

Construct a list from those elements of iterable for which function returns true. iterable may be either a sequence, a container which supports iteration, or an iterator. If iterable is a string or a tuple, the result also has that type; otherwise it is always a list. If function is None , the identity function is assumed, that is, all elements of iterable that are false are removed.

Note that filter(function, iterable) is equivalent to [item for item in iterable if function(item)] if function is not None and [item for item in iterable if item] if function is None .

See and for iterator versions of this function, including a variation that filters for elements where the function returns false

float( [ x ])

Convert a string or a number to floating point. Nếu đối số là một chuỗi, nó phải chứa số thập phân hoặc số dấu phẩy động có thể được ký, có thể được nhúng trong khoảng trắng. Đối số cũng có thể là [+. -]nan hoặc [+. -]inf. Mặt khác, đối số có thể là một số nguyên đơn giản hoặc dài hoặc một số dấu phẩy động và 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) được trả về. Nếu không có đối số nào được đưa ra, trả về 0. 0 .

Ghi chú

Khi truyền vào một chuỗi, các giá trị cho NaN và Infinity có thể được trả về, tùy thuộc vào thư viện C bên dưới. Float chấp nhận các chuỗi nan, inf và -inf cho NaN và vô cực dương hoặc âm. Chữ thường và dấu + hàng đầu bị bỏ qua cũng như dấu đầu - bị bỏ qua đối với NaN. Float luôn đại diện cho NaN và vô cùng dưới dạng nan, inf hoặc -inf

Kiểu float được mô tả trong

format(value [ , format_spec ])

Chuyển đổi một giá trị thành một đại 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ị, tuy nhiên, có một cú pháp định dạng chuẩn được sử dụng bởi hầu hết các loại tích hợp sẵn.

Ghi chú

format(value, format_spec) chỉ gọi value. __format__(format_spec) .

New in version 2. 6

bị đóng băng( [ iterable ])

Trả về một đối tượng Frozenset, tùy chọn với các phần tử được lấy từ iterable. Loại đóng băng được mô tả trong

For other containers see the built in , , and classes, and the module

Mới trong phiên bản 2. 4

getattr(đối tượng, tên [ , default ])

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ụ: getattr(x, 'foobar') tương đương với . foobar . 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ì sẽ được nâng lên.

toàn cầu()

Trả về một từ điển đại diện cho bảng ký hiệu chung hiện tại. Đây luôn là từ điển của mô-đun hiện tại (bên trong một hàm hoặc phương thức, đây là mô-đun nơi nó được định nghĩa, không phải mô-đun mà từ đó nó được gọi)

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à True nếu chuỗi là tên của một trong các thuộc tính của đối tượng, Sai if not. (This is implemented by calling getattr(object, name) và xem liệu nó có đưa ra ngoại lệ hay không. )

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)

trợ giúp( [ object ])

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

Chức năng này được mô-đun thêm vào không gian tên tích hợp

New in version 2. 2

lục giác(x)

Chuyển đổi một số nguyên (có kích thước bất kỳ) thành một chuỗi thập lục phân. Kết quả là một biểu thức Python hợp lệ

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

Đã thay đổi trong phiên bản 2. 4. Trước đây chỉ trả về một chữ không dấu.

id(object)

Trả về “danh tính” của một đối tượng. Đây là một số nguyên (hoặc số nguyên dài) đượ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 lấp có thể có cùng giá trị

Chi tiết triển khai CPython. Đây là địa chỉ của đối tượng

input( [ prompt ])

Tương đương với eval(raw_input(prompt)) .

Cảnh báo

Chức năng này không an toàn trước lỗi người dùng. Nó mong đợi một biểu thức Python hợp lệ làm đầu vào; . Các ngoại lệ khác có thể được nêu ra nếu có lỗi trong quá trình đánh giá. (Mặt khác, đôi khi đây chính xác là những gì bạn cần khi viết một kịch bản nhanh để sử dụng thành thạo. )

Nếu mô-đun đã được tải, thì sẽ sử dụng mô-đun đó để cung cấp các tính năng lịch sử và chỉnh sửa dòng phức tạp

Cân nhắc sử dụng chức năng cho đầu vào chung từ người dùng

int( [ x [ , base ]])

Chuyển đổi một chuỗi hoặc số thành một số nguyên đơn giản. Nếu đối số là một chuỗi, thì đối số đó phải chứa một số thập phân có thể có dấu có thể biểu thị dưới dạng số nguyên Python, có thể được nhúng trong khoảng trắng. Tham số cơ sở cung cấp cơ sở cho chuyển đổi (theo mặc định là 10) và có thể là bất kỳ số nguyên nào trong phạm vi [2, 36] hoặc 0. Nếu cơ sở bằng 0, cơ số thích hợp được xác định dựa trên nội dung của chuỗi; . (Thấy. ) Nếu cơ sở được chỉ định và x không phải là một chuỗi, được nâng lên. Mặt khác, đối số có thể là số nguyên đơn giản hoặc dài hoặc số dấu phẩy động. Chuyển đổi số dấu phẩy động thành số nguyên cắt ngắn (về 0). Nếu đối số nằm ngoài phạm vi số nguyên, thay vào đó, một đối tượng dài sẽ được trả về. Nếu không có đối số nào được đưa ra, trả về 0 .

Kiểu số nguyên được mô tả trong

isinstance(đối tượng, thông tin lớp)

Trả về true 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 hoặc gián tiếp) của nó. Cũng trả về true nếu classinfo là một đối tượng kiểu (lớp kiểu mới) và đối tượng là một đối tượng thuộc kiểu đó hoặc của một lớp con (trực tiếp hoặc gián tiếp) của nó. Nếu đối tượng không phải là một thể hiện của lớp hoặc một đối tượng của loại đã cho, thì hàm luôn trả về false. Nếu classinfo không phải là một đối tượng lớp cũng không phải là một đối tượng kiểu, thì nó có thể là một bộ của các đối tượng lớp hoặc kiểu hoặc có thể chứa đệ quy các bộ khác như vậy (các kiểu trình tự khác không được chấp nhận). Nếu classinfo không phải là một lớp, loại hoặc bộ gồm các lớp, loại và các bộ như vậy, một ngoại lệ sẽ được đưa ra

Đã thay đổi trong phiên bản 2. 2. Hỗ trợ cho một bộ thông tin loại đã được thêm vào.

issubclass(lớp, thông tin lớp)

Trả về true nếu lớp là lớp con (trực tiếp hoặc gián tiếp) 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ộ các đối tượng lớp, trong trường hợp đó, mọi mục nhập trong classinfo sẽ được kiểm tra. Trong mọi trường hợp khác, một ngoại lệ được nêu ra

Đã thay đổi trong phiên bản 2. 3. Hỗ trợ cho một bộ thông tin loại đã được thêm vào.

iter(o [ , sentinel ])

Trả về một đối tượng. Đố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, o phải là một đối tượng tập hợp hỗ trợ giao thức lặp (phương thức) hoặc nó phải hỗ trợ giao thức tuần tự (phương thức có đối số nguyên bắt đầu từ 0). If it does not support either of those protocols, is raised. If the second argument, sentinel, is given, then o must be a callable object. The iterator created in this case will call o with no arguments for each call to its method; if the value returned is equal to sentinel, will be raised, otherwise the value will be returned.

Một ứng dụng hữu ích của dạng thứ hai là đọc các dòng của tệp cho đến khi đạt đến một dòng nhất định. Ví dụ sau đọc một tệp cho đến khi đạt đến "STOP" .

with open("mydata.txt") as fp:
    for line in iter(fp.readline, "STOP"):
        process_line(line)

New in version 2. 2

(các) ống kính

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 (chuỗi, bộ hoặc danh sách) hoặc ánh xạ (từ điển)

list( [ iterable ])

Trả về danh sách có các mục giống nhau và theo cùng thứ tự với các mục của iterable. iterable có thể là một chuỗi, một vùng chứa hỗ trợ phép lặp hoặc một đối tượng lặp. Nếu iterable đã là một danh sách, một bản sao sẽ được tạo và trả về, tương tự như iterable[. ] . For instance, list('abc') returns ['a', 'b', 'c'] and list( (1, 2, 3) ) returns [1, 2, 3] . Nếu không có đối số nào được đưa ra, trả về một danh sách trống mới, [] .

là một loại trình tự có thể thay đổi, như được ghi lại trong. Đối với các vùng chứa khác, hãy xem các lớp , , lớp tích hợp và mô-đun

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ề 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

Ghi chú

Nội dung của từ điển này không nên được sửa đổi;

dài( [ x [ , base [ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở[ , cơ sở]])

Chuyển đổi chuỗi hoặc số thành số nguyên dài. Nếu đối số là một chuỗi, nó phải chứa một số có thể được ký với kích thước tùy ý, có thể được nhúng trong khoảng trắng. Đối số cơ sở được diễn giải giống như for và chỉ có thể được đưa ra khi x là một chuỗi. Mặt khác, đối số có thể là số nguyên đơn giản hoặc số nguyên dài hoặc số dấu phẩy động và một số nguyên dài có cùng giá trị được trả về. Chuyển đổi số dấu phẩy động thành số nguyên cắt ngắn (về 0). Nếu không có đối số nào được đưa ra, trả về 0L .

Loại dài được mô tả trong

bản đồ (chức năng, lặp lại,. )

Áp dụng chức năng cho mọi mục có thể lặp lại và trả về danh sách kết quả. Nếu các đối số có thể 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. Nếu một lần lặp ngắn hơn một lần lặp khác thì nó được giả định là được mở rộng với None mục. Nếu chức năng là Không có , thì chức năng nhận dạng được giả định; . Các đối số có thể lặp lại có thể là một chuỗi hoặc bất kỳ đối tượng có thể lặp lại nào; .

max(có thể lặp lại [ , args. ][key ])

Với một đối số duy nhất có thể lặp lại, hãy trả về mục lớn nhất của một lần lặp không trống (chẳng hạn như chuỗi, bộ hoặc danh sách). Với nhiều hơn một đối số, hãy trả về đối số lớn nhất

Đối số khóa tùy chọn chỉ định hàm sắp xếp một đối số giống như hàm được sử dụng cho list. sắp xếp() . Đối số chính, nếu được cung cấp, phải ở dạng từ khóa (ví dụ: max(a,b,c,key=func) ).

Đã thay đổi trong phiên bản 2. 5. Đã thêm hỗ trợ cho đối số khóa tùy chọn.

chế độ xem bộ nhớ (obj)

Trả về đối tượng "chế độ xem bộ nhớ" được tạo từ đối số đã cho. Xem để biết thêm thông tin

min(có thể lặp lại [ , args. ][key ])

Với một đối số duy nhất có thể lặp lại, hãy trả về mục nhỏ nhất của một lần lặp không trống (chẳng hạn như chuỗi, bộ hoặc danh sách). Với nhiều hơn một đối số, hãy trả về giá trị nhỏ nhất trong số các đối số

Đối số khóa tùy chọn chỉ định hàm sắp xếp một đối số giống như hàm được sử dụng cho list. sắp xếp() . Đối số chính, nếu được cung cấp, phải ở dạng từ khóa (ví dụ: min(a,b,c,key=func) ).

Đã thay đổi trong phiên bản 2. 5. Đã thêm hỗ trợ cho đối số khóa tùy chọn.

next(iterator [ , default ])

Truy xuất mục tiếp theo từ trình vòng lặp bằng cách gọi phương thức của nó. Nếu giá trị mặc định được đưa ra, nó sẽ được trả về nếu bộ lặp đã cạn kiệt, nếu không thì sẽ được nâng lên

New in version 2. 6

mục tiêu()

Trả lại một đối tượng đặc biệt mới. là cơ sở cho tất cả các lớp kiểu mới. Nó có các phương thức chung cho tất cả các thể hiện của các lớp kiểu mới

New in version 2. 2

Đã thay đổi trong phiên bản 2. 3. Hàm này không chấp nhận bất kỳ đối số nào. Trước đây, nó chấp nhận các đối số nhưng bỏ qua chúng.

tháng mười(x)

Chuyển đổi một số nguyên (có kích thước bất kỳ) thành một chuỗi bát phân. Kết quả là một biểu thức Python hợp lệ

Đã thay đổi trong phiên bản 2. 4. Trước đây chỉ trả về một chữ không dấu.

open(filename [ , mode [ , bufsize ]])

Mở một tệp, trả về một đối tượng thuộc loại được mô tả trong phần. Nếu tệp không thể mở được, được nâng lên. Khi mở tệp, nên sử dụng thay vì gọi trực tiếp hàm tạo

Hai đối số đầu tiên giống như đối với stdio của fopen(): filename is the file name to be opened, and mode is a string indicating how the file is to be opened.

Các giá trị thường được sử dụng nhất của chế độ là 'r' để đọc, 'w' . If mode is omitted, it defaults to for writing (truncating the file if it already exists), and 'a' for appending (which on some Unix systems means that all writes append to the end of the file regardless of the current seek position). If mode is omitted, it defaults to 'r' . Chế độ mặc định là sử dụng chế độ văn bản, chế độ này có thể chuyển đổi các ký tự '\n' thành biểu diễn dành riêng cho nền tảng khi viết và ngược lại khi đọc. Vì vậy, khi mở tệp nhị phân, bạn nên thêm 'b' vào giá trị chế độ để mở tệp ở chế độ nhị phân, điều này sẽ cải thiện tính di động. (Việc thêm 'b' hữu ích ngay cả trên các hệ thống không xử lý tệp nhị phân và tệp văn bản khác nhau, khi nó đóng vai trò là tài liệu. ) Xem bên dưới để biết thêm các giá trị có thể có của chế độ.

Đối số bufsize tùy chọn chỉ định kích thước bộ đệm mong muốn của tệp. 0 có nghĩa là không có bộ đệm, 1 có nghĩa là dòng được đệm, bất kỳ giá trị dương nào khác có nghĩa là sử dụng bộ đệm có kích thước (xấp xỉ) đó. Bufsize âm có nghĩa là sử dụng giá trị mặc định của hệ thống, thường được lưu vào bộ đệm dòng cho các thiết bị tty và được lưu vào bộ đệm đầy đủ cho các tệp khác. Nếu bỏ qua, mặc định hệ thống được sử dụng.

Chế độ 'r+' , 'w+' và . Nối 'a+' open the file for updating (note that 'w+' truncates the file). Append 'b' vào chế độ mở tệp ở chế độ nhị phân, trên các hệ thống phân biệt giữa tệp nhị phân và tệp văn bản; . 'b' has no effect.

Ngoài chế độ giá trị fopen() tiêu chuẩn có thể là 'U' or 'rU'. Python is usually built with universal newline support; supplying 'U' opens the file as a text file, but lines may be terminated by any of the following: the Unix end-of-line convention '\n' , quy ước Macintosh '\r', or the Windows convention '\r\n'. All of these external representations are seen as '\n' . Nếu Python được xây dựng mà không hỗ trợ dòng mới chung thì chế độ có 'U' giống như chế độ văn bản thông thường. Lưu ý rằng các đối tượng tệp được mở cũng có một thuộc tính có tên là dòng mới có giá trị là None (if no newlines have yet been seen), '\n', '\r', '\r\n', or a tuple containing all the newline types seen.

Python thực thi rằng chế độ, sau khi loại bỏ 'U' , bắt đầu bằng 'r'< . , 'w' or 'a'.

Python cung cấp nhiều mô-đun xử lý tệp bao gồm , , , và

Đã thay đổi trong phiên bản 2. 5. Đã giới thiệu hạn chế về chữ cái đầu tiên của chuỗi chế độ.

lệnh(c)

Cho một chuỗi có độ dài một, trả về một số nguyên biểu thị điểm mã Unicode của ký tự khi đối số là đối tượng unicode hoặc giá trị của byte khi đối số là chuỗi 8 bit. Ví dụ: ord('a') trả về số nguyên 97 , . Đây là nghịch đảo của chuỗi 8 bit và của đối tượng unicode. Nếu một đối số unicode được cung cấp và Python được xây dựng bằng UCS2 Unicode, thì điểm mã của ký tự phải nằm trong phạm vi [0. 65535] bao gồm; . ord(u'\u2020') returns 8224. This is the inverse of for 8-bit strings and of for unicode objects. If a unicode argument is given and Python was built with UCS2 Unicode, then the character’s code point must be in the range [0..65535] inclusive; otherwise the string length is two, and a will be raised.

pow(x, y [ , z ])

Đưa x về lũy thừa y; . Dạng hai đối số pow(x, y) % z). The two-argument form pow(x, y) tương đương với việc sử dụng toán tử lũy thừa. x**y .

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 int và long int, kết quả có cùng loại với toán hạng (sau khi ép buộc) trừ khi đối số thứ hai là âm; . Ví dụ: 10**2 trả về 100 , nhưng 10**-2 returns 0.01 . (Tính năng cuối cùng này đã được thêm vào Python 2. 2. Trong Python 2. 1 trở về trước, nếu cả hai đối số đều thuộc loại số nguyên và đối số thứ hai là số âm, một ngoại lệ sẽ được đưa ra. ) Nếu đối số thứ hai là phủ định, đối số thứ ba phải được bỏ qua. Nếu có z, x và y phải là kiểu số nguyên và y phải không âm. (Hạn chế này đã được thêm vào Python 2. 2. Trong Python 2. 1 trở về trước, đối số 3 dấu phẩy động pow() đã trả về kết quả phụ thuộc vào nền tảng tùy thuộc vào sự cố làm tròn dấu phẩy động. )

in ([đối tượng,. ][, sep=' '][, end='\n'][, file=sys. tiêu chuẩn])

In (các) đối tượng vào tệp luồng, được phân tách bằng sep và theo sau là end. sep, end và file, 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ư hiện 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, sẽ chỉ viết kết thúc. None, which means to use the default values. If no object is given, will just write end.

Đối số tệp phải là đối tượng có phương thức write(string) ; . None, will be used.

Ghi chú

Hàm này thường không có sẵn dưới dạng tích hợp vì tên print được nhận dạng là câu lệnh. Để tắt câu lệnh và sử dụng chức năng, hãy sử dụng câu lệnh tương lai này ở đầu mô-đun của bạn.

from __future__ import print_function

New in version 2. 6

thuộc tính( [ fget [ , fset [ , fdel [ , doc ]]]])

Trả về một thuộc tính thuộc tính cho es (các lớp bắt nguồn từ )

fget là một hàm để nhận một giá trị thuộc tính, tương tự như vậy, fset là một hàm để cài đặt và fdel là một hàm để xóa, một 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ý x .

________số 8_______

Nếu thì c là một thể hiện của C, c. x sẽ gọi getter, c. x = value sẽ gọi setter và del c.x bộ xóa.

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 như một

class Parrot(object):
    def __init__(self):
        self._voltage = 100000

    @property
    def voltage(self):
        """Get the current voltage."""
        return self._voltage

biến phương thức điện áp() thành "bộ thu" cho thuộc tính chỉ đọc có cùng tên.

Một đối tượng thuộc tính có getter , setter và . Điều này được giải thích tốt nhất với một ví dụ. deleter methods usable as decorators that create a copy of the property with the corresponding accessor function set to the decorated function. This is best explained with an example:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
0

Mã này hoàn toàn tương đương với ví dụ đầu tiên. Đảm bảo đặt tên cho các chức năng bổ sung giống như thuộc tính ban đầu ( x trong trường hợp này. )

Thuộc tính được trả về cũng có các thuộc tính fget , fset, and fdel corresponding to the constructor arguments.

New in version 2. 2

Đã thay đổi trong phiên bản 2. 5. Sử dụng chuỗi tài liệu của fget nếu không có tài liệu nào được cung cấp.

Đã thay đổi trong phiên bản 2. 6. The getter , setter , . deleter attributes were added.

phạm vi( [ start ] , stop [ , step ])

Đây là một hàm linh hoạt để tạo danh sách chứa các cấp số cộng. Nó thường được sử dụng trong các vòng lặp. Các đối số phải là số nguyên đơn giản. Nếu đối số bước bị bỏ qua, nó sẽ mặc định là 1 . Nếu đối số bắt đầu bị bỏ qua, nó sẽ mặc định là 0 . Dạng đầy đủ trả về một danh sách các số nguyên đơn giản [start, start + . ] start + 2 * step, ...] . Nếu bước là số dương, phần tử cuối cùng là phần tử lớn nhất bắt đầu + i . bước không được bằng 0 (nếu không thì được nâng lên). Thí dụ. step less than stop; if step is negative, the last element is the smallest start + i * step greater than stop. step must not be zero (or else is raised). Example:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
1

raw_input( [ prompt ])

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, được nâng lên. Thí dụ

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
2

Nếu mô-đun đã được tải, thì sẽ sử dụng mô-đun đó để cung cấp các tính năng lịch sử và chỉnh sửa dòng phức tạp

reduce(function, iterable [ , initializer ])

Áp dụng hàm tích lũy hai đối số cho các mục có thể lặp lại, từ trái sang phải, để giảm giá trị có thể lặp lại thành một giá trị. Ví dụ: reduce(lambda x, y. x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5). The left argument, x, is the accumulated value and the right argument, y, is the update value from the iterable. If the optional initializer is present, it is placed before the items of the iterable in the calculation, and serves as a default when the iterable is empty. If initializer is not given and iterable contains only one item, the first item is returned.

tải lại (mô-đun)

Tải lại mô-đun đã nhập trước đó. Đối số phải là một đối tượng mô-đun, vì vậy nó phải được nhập thành công trước đó. Điều này hữu ích nếu bạn đã chỉnh sửa tệp nguồn mô-đun bằng trình chỉnh sửa bên ngoài và muốn dùng thử phiên bản mới mà không cần rời khỏi trình thông dịch Python. Giá trị trả về là đối tượng mô-đun (giống như đối số mô-đun)

Khi reload(module) được thực thi.

  • Mã của mô-đun Python được biên dịch lại và mã cấp mô-đun được thực thi lại, xác định một nhóm đối tượng mới được liên kết với các tên trong từ điển của mô-đun. Hàm init của các mô-đun mở rộng không được gọi lần thứ hai.
  • Như với tất cả các đối tượng khác trong Python, các đối tượng cũ chỉ được lấy lại sau khi số tham chiếu của chúng giảm xuống 0
  • Tên trong không gian tên mô-đun được cập nhật để trỏ đến bất kỳ đối tượng mới hoặc thay đổi nào
  • Các tham chiếu khác đến các đối tượng cũ (chẳng hạn như các tên bên ngoài mô-đun) không được phục hồi để tham chiếu đến các đối tượng mới và phải được cập nhật trong mỗi không gian tên nơi chúng xuất hiện nếu muốn

Có một số lưu ý khác

Nếu một mô-đun đúng về mặt cú pháp nhưng quá trình khởi tạo không thành công, thì câu lệnh đầu tiên dành cho mô-đun đó không liên kết cục bộ tên của nó, nhưng lưu trữ một đối tượng mô-đun (được khởi tạo một phần) trong sys. mô-đun . To reload the module you must first it again (this will bind the name to the partially initialized module object) before you can it.

Khi một mô-đun được tải lại, từ điển của nó (chứa các biến toàn cục của mô-đun) được giữ lại. Định nghĩa lại tên sẽ ghi đè định nghĩa cũ, vì vậy đây thường không phải là vấn đề. Nếu phiên bản mới của mô-đun không xác định tên đã được xác định bởi phiên bản cũ, thì định nghĩa cũ vẫn còn. Tính năng này có thể được sử dụng để tạo lợi thế cho mô-đun nếu nó duy trì một bảng toàn cầu hoặc bộ đệm của các đối tượng — với một câu lệnh, nó có thể kiểm tra sự hiện diện của bảng và bỏ qua quá trình khởi tạo nếu muốn

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
3

Việc tải lại các mô-đun tích hợp hoặc được tải động là hợp pháp, ngoại trừ và. Tuy nhiên, trong nhiều trường hợp, các mô-đun mở rộng không được thiết kế để khởi tạo nhiều lần và có thể bị lỗi theo các cách tùy ý khi tải lại

Nếu một mô-đun nhập các đối tượng từ một mô-đun khác bằng cách sử dụng. . , việc gọi mô-đun khác không xác định lại các đối tượng được nhập từ nó — một cách để giải quyết vấn đề này là thực hiện lại câu lệnh, một cách khác là sử dụng và tên đủ điều kiện (mô-đun. *tên*) thay vào đó

Nếu một mô-đun khởi tạo các thể hiện của một lớp, thì việc tải lại mô-đun định nghĩa lớp đó không ảnh hưởng đến các định nghĩa phương thức của các thể hiện — chúng tiếp tục sử dụng định nghĩa lớp cũ. Điều này cũng đúng với các lớp dẫn xuất

đại diện (đố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. Đây là giá trị tương tự do chuyển đổi mang lại (dấu ngoặc kép ngược). Đôi khi rất hữu ích khi có thể truy cập hoạt động này như một chức năng thông thường. Đối với nhiều loại, hàm này cố gắng trả về một chuỗi sẽ mang lại một đối tượng có cùng giá trị khi được chuyển đến , nếu không, biểu diễn là một chuỗi được đặt trong dấu ngoặc nhọn chứa tên của loại đối tượng cùng với thông tin bổ sung . Một lớp có thể kiểm soát những gì hàm này trả về cho các thể hiện của nó bằng cách định nghĩa một phương thức

đảo ngược (tiếp theo)

Trở về đảo ngược. seq phải là đối tượng có phương thức hoặc hỗ trợ giao thức trình tự (phương thức và phương thức có đối số nguyên bắt đầu từ 0 ).

Mới trong phiên bản 2. 4

Đã thay đổi trong phiên bản 2. 6. Đã thêm khả năng viết một phương thức tùy chỉnh.

vòng(x [ , n ])

Trả về giá trị dấu phẩy động x được làm tròn thành n chữ số sau dấu thập phân. Nếu n bị bỏ qua, nó mặc định bằng 0. Kết quả là một số dấu chấm động. Các giá trị được làm tròn đến bội số gần nhất của 10 mũ trừ n; . ví dụ: round(0. 5)1. 0vòng(-0. 5)-1. 0 ).

Ghi chú

Hành vi của for float có thể gây ngạc nhiên. ví dụ: vòng(2. 675, 2) cho 2. 67 thay vì dự kiến ​​ 2. 68 . Đâ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 để biết thêm thông tin.

set( [ iterable ])

Trả về một tập hợp mới, tùy chọn với các phần tử được lấy từ iterable. Loại tập hợp được mô tả trong

For other containers see the built in , , and classes, and the module

Mới trong phiên bản 2. 4

setattr(đối tượng, tên, giá trị)

Đây là bản sao của. 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ụ: setattr(x, 'foobar', 123) là . foobar x.foobar = 123 .

lát( [ start ] , stop [ , step ])

Trả về một đối tượng đại diện cho tập hợp các chỉ số được chỉ định bởi range(start, stop, step) . Đối số bắt đầu và bước mặc định là . The start and step arguments default to Không có . Các đối tượng lát cắt có các thuộc tính dữ liệu chỉ đọc bắt đầu , dừngstep which merely return the argument values (or their default). They have no other explicit functionality; however they are used by Numerical Python and other third party extensions. Slice objects are also generated when extended indexing syntax is used. For example: a[bắt đầu. dừng lại. bước] hoặc a[bắt đầu. dừng lại, i] . Xem phiên bản thay thế trả về một trình vòng lặp.

đã sắp xếp(có thể lặp lại [ , cmp [ , key [ , reverse ]]])

Trả về một danh sách được sắp xếp mới từ các mục trong iterable

Các đối số tùy chọn cmp, key và reverse có cùng ý nghĩa với các đối số trong list. phương thức sort() (được mô tả trong phần ).

cmp chỉ định hàm so sánh tùy chỉnh của hai đối số (phần tử có thể lặp lại) sẽ trả về số âm, 0 hoặc số dương tùy thuộc vào việc đối số thứ nhất có được coi là nhỏ hơn, bằng hoặc lớn hơn đối số thứ hai hay không. cmp=lambda x,y. cmp(x. hạ(), y. hạ()) . Giá trị mặc định là Không có .

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 thành phần danh sách. key=str. thấp hơn . Giá trị mặc định là Không có (so sánh trực tiếp các phần tử).

reverse là một giá trị boolean. Nếu được đặt thành True , thì các phần tử danh sách được sắp xếp như thể mỗi phép so sánh được đảo ngược.

Nói chung, quá trình chuyển đổi chính và đảo ngược nhanh hơn nhiều so với chỉ định hàm cmp tương đương. Điều này là do cmp được gọi nhiều lần cho mỗi phần tử danh sách trong khi phím và đảo ngược chỉ chạm vào mỗi phần tử một lần. Sử dụng để chuyển đổi chức năng cmp kiểu cũ thành chức năng chính

Để biết các ví dụ sắp xếp và hướng dẫn sắp xếp ngắn gọn, hãy xem Cách sắp xếp

Mới trong phiên bản 2. 4

phương thức tĩnh (chức năng)

Trả về một phương thức tĩnh cho hàm

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

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
4

Biểu mẫu @staticmethod là một hàm – xem mô tả định nghĩa hàm trong để biết chi tiết.

Nó có thể được gọi trên lớp (chẳng hạn như C. f() ) hoặc trên một phiên bản (chẳng hạn như C(). f() ). Thể hiện bị bỏ qua ngoại trừ lớp của nó.

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++. Đối với một khái niệm nâng cao hơn, xem trong phần này

Để biết thêm thông tin về các phương thức tĩnh, hãy tham khảo tài liệu về hệ thống phân cấp kiểu tiêu chuẩn trong

New in version 2. 2

Changed in version 2. 4. Function decorator syntax added.

str( [ object ])

Trả về một chuỗi chứa một biểu diễn có thể in được của một đối tượng. Đối với chuỗi, điều này trả về chính chuỗi đó. Sự khác biệt với repr(object)str(object) không . Nếu không có đối số nào được đưa ra, trả về chuỗi rỗng, '' .

Để biết thêm thông tin về chuỗi, hãy xem mô tả chức năng của chuỗi (chuỗi là chuỗi) và cả các phương thức dành riêng cho chuỗi được mô tả trong phần. Để xuất các chuỗi có định dạng, hãy sử dụng các chuỗi mẫu hoặc toán tử % được mô tả trong phần. Ngoài ra xem phần. Xem thêm.

tổng(có thể lặp lại [ , start ])

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. bắt đầu mặc định là 0 . 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. Cách ưa thích, nhanh chóng để nối một chuỗi các chuỗi là gọi ''. tham gia (dãy) . Để thêm các giá trị dấu phẩy động với độ chính xác mở rộng, hãy xem. Để nối một loạt các lần lặp, hãy cân nhắc sử dụng.

New in version 2. 3

siêu(loại [ , object-or-type ])

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. Thứ tự tìm kiếm giống như thứ tự được sử dụng ngoại trừ bản thân loại bị bỏ qua

Thuộc tính __mro__ của loại liệt kê thứ tự tìm kiếm giải pháp phương pháp được sử dụng bởi cả và. 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ề sẽ không bị ràng buộc. Nếu đối số thứ hai là một đối tượng, thì isinstance(obj, type) phải đúng. Nếu đối số thứ hai là một loại, thì issubclass(type2, type) 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 phương thức này có cùng một chữ ký gọi 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

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
5

Lưu ý được triển khai như một phần của quy trình liên kết để tra cứu thuộc tính chấm rõ ràng, chẳng hạn như super(). __getitem__(tên) . Nó làm như vậy bằng cách triển khai phương thức riêng của 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 đó, 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ử như super()[name] .

Cũng lưu ý rằng không giới hạn 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

New in version 2. 2

tuple( [ iterable ])

Trả về một bộ có các mục giống nhau và theo cùng thứ tự với các mục của iterable. iterable có thể là một chuỗi, một vùng chứa hỗ trợ phép lặp hoặc một đối tượng lặp. Nếu iterable đã là một Tuple, nó sẽ được trả về không thay đổi. Chẳng hạn, tuple('abc') trả về ('a', 'b', 'c') and tuple([1, 2, 3]) returns (1, 2, 3). If no argument is given, returns a new empty tuple, () .

là một loại trình tự bất biến, như được ghi lại trong. Đối với các vùng chứa khác, hãy xem các lớp , , lớp tích hợp và mô-đun

loại (đối tượng)

Trả về loại đối tượng. Giá trị trả về là một đối tượng kiểu. Hàm tích hợp được khuyến nghị để kiểm tra loại đối tượng

Với ba đối số, các chức năng như một hàm tạo như chi tiết bên dưới

loại (tên, căn cứ, chính tả)

Trả về đối tượng kiểu mới. Đây thực chất là một hình thức năng động của tuyên bố. Chuỗi tên là tên lớp và trở thành thuộc tính __name__ ; . Ví dụ: hai câu lệnh sau tạo các đối tượng giống hệt nhau. __bases__ attribute; and the dict dictionary is the namespace containing definitions for class body and becomes the __dict__ attribute. For example, the following two statements create identical objects:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
6

New in version 2. 2

unichr(i)

Trả về chuỗi Unicode của một ký tự có mã Unicode là số nguyên i. Ví dụ: unichr(97) trả về chuỗi u'a' . Đây là nghịch đảo của chuỗi Unicode. Phạm vi hợp lệ cho đối số phụ thuộc vào cách cấu hình Python – nó có thể là UCS2 [0. 0xFFFF] hoặc UCS4 [0. 0x10FFFF]. được nâng lên khác. Đối với chuỗi ASCII và 8 bit, xem.

Mới trong phiên bản 2. 0

unicode( [ object [ , encoding [ , errors ]]])

Trả về phiên bản chuỗi Unicode của đối tượng bằng một trong các chế độ sau

Nếu mã hóa và/hoặc có lỗi, unicode() sẽ giải mã đối tượng có thể là một chuỗi 8 bit hoặc một . Tham số mã hóa là một chuỗi cung cấp tên của mã hóa; . Xử lý lỗi được thực hiện theo lỗi; . Nếu lỗi là 'strict' (mặc định), a sẽ tăng do lỗi, trong khi giá trị của 'ignore . Xem thêm mô-đun. causes errors to be silently ignored, and a value of 'replace' causes the official Unicode replacement character, U+FFFD, to be used to replace input characters which cannot be decoded. See also the module.

Nếu không có tham số tùy chọn nào được cung cấp, unicode() sẽ bắt chước hành vi của str() . Chính xác hơn, nếu đối tượng là một chuỗi hoặc phân lớp Unicode, nó sẽ trả về chuỗi Unicode đó mà không áp dụng bất kỳ giải mã bổ sung nào. except that it returns Unicode strings instead of 8-bit strings. More precisely, if object is a Unicode string or subclass it will return that Unicode string without any additional decoding applied.

Đối với các đối tượng cung cấp phương thức, nó sẽ gọi phương thức này mà không có đối số để tạo chuỗi Unicode. Đối với tất cả các đối tượng khác, phiên bản hoặc biểu diễn chuỗi 8 bit được yêu cầu, sau đó được chuyển đổi thành chuỗi Unicode bằng cách sử dụng codec để mã hóa mặc định trong 'strict' mode.

Để biết thêm thông tin về chuỗi Unicode, hãy xem phần mô tả chức năng chuỗi (chuỗi Unicode là chuỗi) và cả các phương thức dành riêng cho chuỗi được mô tả trong phần. Để xuất các chuỗi có định dạng, hãy sử dụng các chuỗi mẫu hoặc toán tử % được mô tả trong phần. Ngoài ra xem phần. See also .

Mới trong phiên bản 2. 0

Đã thay đổi trong phiên bản 2. 2. Hỗ trợ thêm.

vars( [ object ])

Không cần tranh luận, hãy hành động như

Với một đối tượng mô-đun, lớp hoặc đối tượng lớp làm đối số (hoặc bất kỳ thứ gì khác có thuộc tính __dict__ ), trả về thuộc tính đó.

Ghi chú

Không nên sửa đổi từ điển đã trả về. các hiệu ứng trên bảng ký hiệu tương ứng là không xác định.

xrange( [ start ] , stop [ , step ])

Hàm này rất giống với , nhưng trả về một “đối tượng xrange” thay vì một danh sách. Đây là một loại trình tự mờ mang lại các giá trị giống như danh sách tương ứng mà không thực sự lưu trữ tất cả chúng đồng thời. Ưu điểm của over là tối thiểu (vì vẫn phải tạo các giá trị khi được yêu cầu) trừ khi một phạm vi rất lớn được sử dụng trên máy bị thiếu bộ nhớ hoặc khi tất cả các thành phần của phạm vi không bao giờ được sử dụng (chẳng hạn như khi vòng lặp

Chi tiết triển khai CPython. được dự định là đơn giản và nhanh chóng. Việc triển khai có thể áp đặt các hạn chế để đạt được điều này. Việc triển khai C của Python hạn chế tất cả các đối số đối với các số nguyên gốc C dài (“số nguyên Python ngắn”) và cũng yêu cầu số lượng phần tử phù hợp với một gốc C dài. Nếu cần phạm vi lớn hơn, một phiên bản thay thế có thể được tạo bằng cách sử dụng mô-đun. islice(count(start, step), (stop-start+step-1+2*(step< . .

zip( [ có thể lặp lại,. ])

Hàm này trả về một danh sách các bộ, trong đó bộ thứ i chứa phần tử thứ i từ mỗi chuỗi đối số hoặc lặp lại. Danh sách được trả về bị cắt ngắn theo độ dài của chuỗi đối số ngắn nhất. Khi có nhiều đối số có cùng độ dài, tương tự như với đối số ban đầu là None . Với một đối số trình tự duy nhất, nó trả về danh sách 1 bộ. Không có đối số, nó trả về một danh sách trống.

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ữ để nhóm chuỗi dữ liệu thành các nhóm có độ dài n bằng cách sử dụng zip(*[iter(s)]*n) .

kết hợp với toán tử * có thể được sử dụng để giải nén danh sách.

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
7

Mới trong phiên bản 2. 0

Đã thay đổi trong phiên bản 2. 4. Trước đây, yêu cầu ít nhất một đối số và zip() đưa ra a thay vì trả về một danh sách trống.

__import__(name [ , toàn cầu [ , người dân địa phương [ , từ danh sách [ , cấp độ ]]]])

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

Hàm này được gọi bởi câu lệnh. Nó có thể được thay thế (bằng cách nhập mô-đun và gán cho __builtin__. __import__ ) để thay đổi ngữ nghĩa của câu lệnh, nhưng ngày nay việc sử dụng móc nhập thường đơn giản hơn (xem PEP 302). Hiếm khi sử dụng trực tiếp, ngoại trừ trường hợp bạn muốn nhập một mô-đun có tên chỉ được biết khi chạy.

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 toàn cục của nó để xác định ngữ cảnh gói của câu lệnh

cấp chỉ định sử dụng nhập tuyệt đối hay tương đối. Giá trị mặc định là -1 cho biết cả nhập tuyệt đối và tương đối sẽ được thử. 0 có nghĩa là chỉ thực hiện nhập tuyệt đối. Các giá trị dương cho cấp độ cho biết số lượng thư mục mẹ cần tìm kiếm so với thư mục của mô-đun đang gọi.

Khi biến tên có dạng gói. mô-đun , 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 nhập spam dẫn đến mã byte giống như mã sau.

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
8

Tuyên bố nhập thư rác. ham dẫn đến cuộc gọi này.

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
9

Lưu ý cách 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ởi câu lệnh

Mặt khác, tuyên bố từ thư rác. giăm bông nhập trứng, xúc xích dưới dạng saus results in

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...
0

Đây, thư rác. mô-đun ham được trả về từ. 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, bạn có thể gọi và sau đó tra cứu nó trong

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...
1

Đã thay đổi trong phiên bản 2. 5. Tham số cấp độ đã được thêm vào.

Đã thay đổi trong phiên bản 2. 5. Hỗ trợ từ khóa cho các tham số đã được thêm vào.

3. Các chức năng tích hợp không cần thiết

Có một số chức năng tích hợp không còn cần thiết để tìm hiểu, biết hoặc sử dụng trong lập trình Python hiện đại. Chúng đã được giữ ở đây để duy trì khả năng tương thích ngược với các chương trình được viết cho các phiên bản Python cũ hơn

Các lập trình viên Python, giảng viên, sinh viên và người viết sách có thể thoải mái bỏ qua các chức năng này mà không lo bỏ sót điều gì quan trọng.

apply(function, args [ , keywords ])

Đối số hàm phải là đối tượng có thể gọi được (hàm hoặc phương thức do người dùng định nghĩa hoặc tích hợp sẵn hoặc đối tượng lớp) và đối số args phải là một chuỗi. Hàm được gọi với args là danh sách đối số; . Nếu đối số từ khóa tùy chọn xuất hiện, thì đó phải là từ điển có khóa là chuỗi. Nó chỉ định các đối số từ khóa sẽ được thêm vào cuối danh sách đối số. Việc gọi khác với việc chỉ gọi hàm(args) , vì trong trường hợp đó luôn có chính xác một đối số. The use of is equivalent to function(*args, **keywords) .

Deprecated since version 2. 3. Use the extended call syntax with *args and **keywords instead.

buffer(object [ , offset [ , size ]] )

The object argument must be an object that supports the buffer call interface (such as strings, arrays, and buffers). A new buffer object will be created which references the object argument. The buffer object will be a slice from the beginning of object (or from the specified offset). The slice will extend to the end of object (or will have a length given by the size argument)

coerce(x, y)

Return a tuple consisting of the two numeric arguments converted to a common type, using the same rules as used by arithmetic operations. If coercion is not possible, raise

intern(string)

Enter string in the table of “interned” strings and return the interned string – which is string itself or a copy. Interning strings is useful to gain a little performance on dictionary lookup – if the keys in a dictionary are interned, and the lookup key is interned, the key comparisons (after hashing) can be done by a pointer compare instead of a string compare. Normally, the names used in Python programs are automatically interned, and the dictionaries used to hold module, class or instance attributes have interned keys

How to get source code Python?

getsource() method is used to get the source code of Python objects. .
Syntax. inspect. getsource(object)
Parameter. The object type parameter, of which we want the source code
Return type. text of the source code for an object

Mã nguồn Python là gì?

Source code is what we call the human-readable computer instructions written by programmers . It's written in plain texts. We write it without special formatting, like bold, italic, or different font types. It's mostly just the actual characters.