Hướng dẫn what are inbuilt types available in python? - những loại sẵn có trong python là gì?

Chương này là từ cuốn sách 

Các loại tích hợp

Khoảng hai chục loại được tích hợp vào phiên dịch Python và được nhóm thành một vài loại chính, như trong Bảng 3.1. Cột tên loại trong bảng liệt kê tên có thể được sử dụng để kiểm tra loại đó bằng isInstance () và các hàm liên quan đến loại khác. Các loại bao gồm các đối tượng quen thuộc như số và trình tự. Những người khác được sử dụng trong quá trình thực hiện chương trình và ít được sử dụng thực tế cho hầu hết các lập trình viên. Một vài phần tiếp theo mô tả các loại tích hợp được sử dụng phổ biến nhất.

Bảng 3.1 Các loại Python tích hợp

Loại thể loại

Tên loại

Sự mô tả

Không có

types.NoneType

Đối tượng null không có

Số

int

Số nguyên

long

Số nguyên chính xác tùy ý

float

Điểm nổi

tổ hợp

Số phức

bool

Boolean (đúng hoặc sai)

Trình tự

str

Chuỗi ký tự

unicode

Chuỗi ký tự Unicode

Basestring

Loại cơ sở trừu tượng cho tất cả các chuỗi

danh sách

Danh sách

Tuple

Tuple

Xrange

Trở lại bởi xrange ()

Lập bản đồ

DIGN

Từ điển

Bộ

bộ

Bộ có thể thay đổi

Frozenset

Bộ bất biến

Có thể gọi được

types.BuiltinFunctionType

Chức năng tích hợp sẵn

types.BuiltinMethodType

Phương pháp tích hợp

loại hình

Loại loại và lớp tích hợp

sự vật

Tổ tiên của tất cả các loại và lớp học

types.FunctionType

Chức năng do người dùng xác định

types.InstanceType

Đối tượng lớp đối tượng

types.MethodType

Phương pháp lớp ràng buộc

types.UnboundMethodType

Phương pháp lớp không bị ràng buộc

Mô -đun

types.ModuleType

Mô -đun

Các lớp học

sự vật

Tổ tiên của tất cả các loại và lớp học

Chức năng do người dùng xác định

loại hình

Loại loại và lớp tích hợp

sự vật

Tổ tiên của tất cả các loại và lớp học

Chức năng do người dùng xác định

Đối tượng lớp đối tượng

types.CodeType

Phương pháp lớp ràng buộc

types.FrameType

Phương pháp lớp không bị ràng buộc

types.GeneratorType

Mô -đun

types.TracebackType

Mô -đun

types.SliceType

Các lớp học

types.EllipsisType

Loại

Các tập tin

types.ClassType

tập tin

types.InstanceType

Tập tin

Nội bộ

Mã biên dịch byte

Khung thực thi

Đối tượng máy phát

Stacks TraceBack of a Exception

Được tạo ra bởi các lát cắt mở rộng

Được sử dụng trong các lát mở rộng

Các lớp học cổ điển

Định nghĩa lớp kiểu cũ

Ví dụ lớp kiểu cũ

Lưu ý rằng đối tượng và loại xuất hiện hai lần trong Bảng 3.1 vì các lớp và loại đều có thể gọi được. Các loại được liệt kê cho "các lớp cổ điển" đề cập đến một giao diện hướng đối tượng đã lỗi thời, nhưng vẫn hỗ trợ. Thông tin chi tiết về điều này có thể được tìm thấy sau trong chương này và trong Chương 7, "Các lớp và lập trình hướng đối tượng."

Table 3.2 shows the operators and methods that you can apply to all sequence types. Element i of sequence s is selected using the indexing operator s[i], and subsequences are selected using the slicing operator s[i:j] or extended slicing operator s[i:j:stride] (these operations are described in Chapter 4). The length of any sequence is returned using the built-in len(s) function. You can find the minimum and maximum values of a sequence by using the built-in min(s) and max(s) functions. However, these functions only work for sequences in which the elements can be ordered (typically numbers and strings).

Table 3.3 shows the additional operators that can be applied to mutable sequences such as lists.

Table 3.2 Operations and Methods Applicable to All Sequences

Item

Description

s[i]

Returns element i of a sequence

s[i:j]

Returns a slice

s[i:j:stride]

Returns an extended slice

len(s)

Number of elements in s

min(s)

Minimum value in s

max(s)

Maximum value in s

Table 3.3 Operations Applicable to Mutable Sequences

Item

Description

s[i] = v

Item assignment

s[i:j] = t

Slice assignment

s[i:j:stride] = t

Extended slice assignment

del s[i]

Item deletion

del s[i:j]

Slice deletion

del s[i:j:stride]

Extended slice deletion

Additionally, lists support the methods shown in Table 3.4. The built-in function list(s) converts any iterable type to a list. If s is already a list, this function constructs a new list that’s a shallow copy of s. The s.append(x) method appends a new element, x, to the end of the list. The s.index(x) method searches the list for the first occurrence of x. If no such element is found, a ValueError exception is raised. Similarly, the s.remove(x) method removes the first occurrence of x from the list. The s.extend(t) method extends the list s by appending the elements in sequence t. The s.sort() method sorts the elements of a list and optionally accepts a comparison function, key function, and reverse flag. The comparison function should take two arguments and return negative, zero, or positive, depending on whether the first argument is smaller, equal to, or larger than the second argument, respectively. The key function is a function that is applied to each element prior to comparison during sorting. Specifying a key function is useful if you want to perform special kinds of sorting operations, such as sorting a list of strings, but with case insensitivity. The s.reverse() method reverses the order of the items in the list. Both the sort() and reverse() methods operate on the list elements in place and return None.

Table 3.4 List Methods

Method

Description

list(s)

Converts s to a list.

s.append(x)

Appends a new element, x, to the end of s.

s.extend(t)

Appends a new list, t, to the end of s.

s.count(x)

Counts occurrences of x in s.

s.index(x [,start [,stop]])

Returns the smallest i where s[i] ==x. start and stop optionally specify the starting and ending index for the search.

s.insert(i,x)

Inserts x at index i.

s.pop([i])

Returns the element i and removes it from the list. If i is omitted, the last element is returned.

s.remove(x)

Searches for x and removes it from s.

s.reverse()

Reverses items of s in place.

s.sort([cmpfunc [, keyf [, reverse]]])

Sorts items of s in place. cmpfunc is acomparison function. keyf is a key function. reverse is a flag that sorts the list in reverse order.

Python provides two string object types. Standard strings are sequences of bytes containing 8-bit data. They may contain binary data and embedded NULL bytes. Unicode strings are sequences of 16-bit characters encoded in a format known as UCS-2. This allows for 65,536 unique character values. Although the latest Unicode standard supports up to 1 million unique character values, these extra characters are not supported by Python by default. Instead, they must be encoded as a special two-character (4-byte) sequence known as a surrogate pair—the interpretation of which is up to the application. Python does not check data for Unicode compliance or the proper use of surrogates. As an optional feature, Python may be built to store Unicode strings using 32-bit integers (UCS-4). When enabled, this allows Python to represent the entire range of Unicode values from U+000000 to U+110000. All Unicode-related functions are adjusted accordingly.

Both standard and Unicode strings support the methods shown in Table 3.5. Although these methods operate on string instances, none of these methods actually modifies the underlying string data. Thus, methods such as s.capitalize(),s.center(), and s.expandtabs() always return a new string as opposed to modifying the string s. Character tests such as s.isalnum() and s.isupper() return True or False if all the characters in the string s satisfy the test. Furthermore, these tests always return False if the length of the string is zero. The s.find(), s.index(), s.rfind(), and s.rindex() methods are used to search s for a substring. All these functions return an integer index to the substring in s. In addition, the find() method returns -1 if the substring isn’t found, whereas the index() method raises a ValueError exception. Many of the string methods accept optional start and end parameters, which are integer values specifying the starting and ending indices in s. In most cases, these values may given negative values, in which case the index is taken from the end of the string. The s.translate() method is used to perform character substitutions. The s.encode() and s.decode() methods are used to transform the string data to and from a specified character encoding. As input it accepts an encoding name such as ‘ascii’, ‘utf-8’, or ‘utf-16’. This method is most commonly used to convert Unicode strings into a data encoding suitable for I/O operations and is described further in Chapter 9, "Input and Output." More details about string methods can be found in the documentation for the string module.

Bảng 3.5 Phương pháp chuỗi

Phương pháp

Sự mô tả

s.capitalize()

Viết hoa nhân vật đầu tiên.

S.Center (chiều rộng [, pad])

Tập trung chuỗi trong một trường có chiều rộng chiều dài. Pad là một nhân vật đệm.

s.count (sub [, start [, end]]))

Số lần xuất hiện của phụ con được chỉ định.

s.decode ([mã hóa [, lỗi]]))

Giải mã một chuỗi và trả về một chuỗi unicode.

S.encode ([mã hóa [, lỗi]]))

Trả về một phiên bản được mã hóa của chuỗi.

S.endswith (hậu tố [, bắt đầu [, kết thúc]]))

Kiểm tra phần cuối của chuỗi cho một hậu tố.

s.expandtabs([tabsize])

Thay thế các tab bằng khoảng trắng.

s.find (sub [, start [, end]]))

Tìm sự xuất hiện đầu tiên của phụ con được chỉ định.

S.index (sub [, start [, end]]))

Tìm sự xuất hiện hoặc lỗi đầu tiên trong phụ con được chỉ định.

s.isalnum()

Kiểm tra xem tất cả các ký tự là chữ và số.

s.isalpha()

Kiểm tra xem tất cả các ký tự là chữ cái.

s.isdigit()

Kiểm tra xem tất cả các ký tự là chữ số.

s.islower()

Kiểm tra xem tất cả các ký tự là chữ thường.

s.isspace()

Kiểm tra xem tất cả các ký tự là khoảng trắng.

s.istitle()

Kiểm tra xem chuỗi có phải là một chuỗi có tiêu đề hay không (chữ cái đầu tiên của mỗi từ được viết hoa).

s.isupper()

Kiểm tra xem tất cả các ký tự là chữ hoa.

s.join(t)

Tham gia các chuỗi s và t.

s.ljust (chiều rộng [, điền]))

Bên trái-Aligns S trong một chuỗi có chiều rộng kích thước.

s.lower()

Chuyển đổi thành chữ thường.

s.lstrip([chrs])

Loại bỏ khoảng trắng hàng đầu hoặc các ký tự được cung cấp trong CHRS.

s.replace (cũ, mới [, maxreplace])

Thay thế các chuỗi con.

s.rfind (sub [, start [, end]]))

Tìm thấy sự xuất hiện cuối cùng của một chuỗi con.

s.rindex (sub [, start [, end]]))

Tìm thấy sự xuất hiện cuối cùng hoặc gây ra lỗi.

s.rjust (chiều rộng [, điền]))

Phải-aligns s trong một chuỗi chiều rộng chiều dài.

s.rsplit ([sep [, maxsplit]]))

Chia một chuỗi từ cuối chuỗi bằng SEP làm dấu phân cách. MaxSplit là số lượng phân tách tối đa để thực hiện. Nếu MaxSplit bị bỏ qua, kết quả giống hệt với phương thức chia ().

s.rstrip([chrs])

Loại bỏ khoảng trắng hoặc các ký tự được cung cấp trong CHRS.

S.Split ([SEP [, MaxSplit]]))

Chia một chuỗi bằng cách sử dụng SEP như một dấu phân cách. MaxSplit là số lượng phân tách tối đa để thực hiện.

s.splitlines([keepends])

Chia một chuỗi thành một danh sách các dòng. Nếu Keepends là 1, các dòng mới được bảo tồn.

S.StartSwith (tiền tố [, bắt đầu [, kết thúc]])

Kiểm tra xem một chuỗi bắt đầu với tiền tố.

s.strip([chrs])

Loại bỏ khoảng trắng dẫn đầu và dấu vết hoặc các ký tự được cung cấp trong CHRS.

s.swapcase()

Chuyển đổi chữ hoa thành chữ thường và ngược lại.

s.title()

Trả về một phiên bản đúc tiêu đề của chuỗi.

S.Translate (Bảng [, Deletechars])

Dịch một chuỗi bằng bảng bảng dịch ký tự, xóa các ký tự trong deletechars.

s.upper()

Chuyển đổi một chuỗi thành chữ hoa.

s.zill(width)

Miếng đệm một chuỗi có số không ở bên trái lên đến chiều rộng được chỉ định.

Vì có hai loại chuỗi khác nhau, Python cung cấp một loại trừu tượng, basestring, có thể được sử dụng để kiểm tra xem một đối tượng là bất kỳ loại chuỗi nào. Đây là một ví dụ:

if isinstance(s,basestring):
  print "is some kind of string"

Phạm vi chức năng tích hợp ([i,] j [, sải bước]) xây dựng một danh sách và điền nó với các số nguyên k sao cho tôi

Loại ánh xạ

Một đối tượng ánh xạ đại diện cho một bộ sưu tập các đối tượng tùy ý được lập chỉ mục bởi một bộ sưu tập khác của các giá trị khóa gần như tùy ý. Không giống như một chuỗi, một đối tượng ánh xạ không được đặt hàng và có thể được lập chỉ mục bởi các số, chuỗi và các đối tượng khác. Ánh xạ là có thể thay đổi.

Từ điển là loại ánh xạ tích hợp duy nhất và là phiên bản Python của một bảng băm hoặc mảng kết hợp. Bạn có thể sử dụng bất kỳ đối tượng bất biến nào làm giá trị khóa từ điển (chuỗi, số, bộ dữ liệu, v.v.). Danh sách, từ điển và các bộ dữ liệu chứa các đối tượng có thể thay đổi không thể được sử dụng làm khóa (loại từ điển yêu cầu các giá trị khóa để duy trì không đổi).

Để chọn một mục trong một đối tượng ánh xạ, hãy sử dụng toán tử chỉ mục chính m [k], trong đó k là giá trị chính. Nếu không tìm thấy chìa khóa, ngoại lệ KeyError sẽ được nâng lên. Hàm Len (M) trả về số lượng các mục có trong một đối tượng ánh xạ. Bảng 3.6 liệt kê các phương pháp và hoạt động.

Bảng 3.6 Phương pháp và hoạt động cho từ điển

Mục

Sự mô tả

len(m)

Trả về số lượng mục trong m.

m[k]

Trả về mục của m với khóa k.

m[k]=x

Đặt m [k] thành x.

del m [k]

Loại bỏ m [k] khỏi m.

m.clear()

Loại bỏ tất cả các mục từ m.

m.copy()

Làm cho một bản sao nông của m.

m.has_key(k)

Trả về true nếu m có khóa k; Nếu không, trả về sai.

m.items()

Trả về một danh sách các cặp (khóa, giá trị).

m.iteritems()

Trả về một iterator tạo ra các cặp (khóa, giá trị).

m.iterkeys()

Trả về một trình lặp lại tạo ra các khóa từ điển.

m.itervalues()

Trả về một trình lặp lại tạo ra các giá trị từ điển.

m.keys()

Trả về một danh sách các giá trị chính.

m.update(b)

Thêm tất cả các đối tượng từ b đến m.

m.values()

Trả về một danh sách tất cả các giá trị trong m.

M.Get (K [, V])

Trả lại m [k] nếu tìm thấy; Nếu không, trả lại v.

M.SetDefault (K [, V])

Trả lại m [k] nếu tìm thấy; Nếu không, trả về v và đặt m [k] = v.

M.POP (K [, mặc định])

Trả về m [k] nếu tìm thấy và loại bỏ nó khỏi m; Mặt khác, trả về mặc định nếu được cung cấp hoặc tăng KeyError nếu không.

m.popitem()

Xóa một cặp ngẫu nhiên (khóa, giá trị) khỏi M và trả về nó dưới dạng tuple.

Phương thức M.Clear () loại bỏ tất cả các mục. Phương thức M.copy () tạo ra một bản sao nông của các mục có trong một đối tượng ánh xạ và đặt chúng vào một đối tượng ánh xạ mới. Phương thức M.Items () trả về một danh sách chứa (khóa, giá trị). Phương thức M.Keys () trả về một danh sách với tất cả các giá trị chính và phương thức M.Values ​​() trả về một danh sách với tất cả các đối tượng. Phương thức M.Update (b) cập nhật đối tượng ánh xạ hiện tại bằng cách chèn tất cả các cặp (khóa, giá trị) được tìm thấy trong đối tượng ánh xạ b. Phương thức M.Get (K [, V]) lấy một đối tượng, nhưng cho phép giá trị mặc định tùy chọn, V, mà đã trả về nếu không có đối tượng như vậy tồn tại. Phương thức M.setDefault (K [, V]) tương tự như M.Get (), ngoại trừ việc trả về V nếu không có đối tượng nào tồn tại, nó sẽ đặt m [k] = v. Nếu v bị bỏ qua, nó mặc định là mặc định là Không có. Phương thức M.pop () trả về một mục từ một từ điển và loại bỏ nó cùng một lúc. Phương thức m.popitem () được sử dụng để phá hủy lặp đi lặp lại các nội dung của từ điển. Các m.iteritems (), m.iterkeys () và m.itervalues ​​() trả về các trình lặp lại cho phép lặp trên tất cả các mục từ điển, khóa hoặc giá trị, tương ứng.

Đặt loại

Một bộ là một bộ sưu tập không có thứ tự của các mặt hàng độc đáo. Không giống như các chuỗi, các bộ không cung cấp các hoạt động lập chỉ mục hoặc cắt. Chúng cũng không giống như từ điển ở chỗ không có giá trị chính liên quan đến các đối tượng. Ngoài ra, các mục được đặt vào một bộ phải là bất biến. Hai loại bộ khác nhau có sẵn: bộ là một bộ có thể thay đổi và Frozenset là một bộ bất biến. Cả hai loại bộ được tạo bằng cách sử dụng một cặp chức năng tích hợp:

s = set([1,5,10,15])
f = frozenset([‘a’,37,’hello’])

Cả Set () và Frozenset () đều tập hợp tập hợp bằng cách lặp lại đối số được cung cấp. Cả hai loại bộ cung cấp các phương thức được nêu trong Bảng 3.7

Bảng 3.7 Phương pháp và hoạt động cho các loại bộ

Mục

Sự mô tả

len(s)

Trả lại số lượng mục trong s.

s.copy()

Tạo một bản sao nông của s.

s.difference(t)

Đặt sự khác biệt. Trả về tất cả các mục trong s, nhưng không phải trong t.

s.intersection(t)

Ngã tư. Trả về tất cả các mục trong cả trong s và trong t.

s.issubbset(t)

Trả về true nếu s là một tập hợp con của t.

s.issuperset(t)

Trả về đúng nếu s là một siêu của t.

s.symmetric_difference(t)

Sự khác biệt đối xứng. Trả về tất cả các mục trong S hoặc T, nhưng không phải trong cả hai bộ.

s.union(t)

Liên hiệp. Trả về tất cả các mục trong s hoặc t.

Các s.diferference (t), s.interection (t), s.symmetric_difference (t) và s.union (t) cung cấp các hoạt động toán học tiêu chuẩn trên các bộ. Giá trị trả về có cùng loại với S (SET hoặc FROZENSET). Tham số T có thể là bất kỳ đối tượng Python hỗ trợ lặp lại. Điều này bao gồm các bộ, danh sách, bộ dữ liệu và chuỗi. Các hoạt động được thiết lập này cũng có sẵn dưới dạng toán tử toán học, như được mô tả thêm trong Chương 4.

Các bộ có thể thay đổi (đặt) Ngoài ra, cung cấp các phương thức được nêu trong Bảng 3.8.

Bảng 3.8 Phương pháp cho các loại bộ có thể thay đổi

Mục

Sự mô tả

s.add(item)

Trả lại số lượng mục trong s.

s.clear()

Tạo một bản sao nông của s.

s.difference_update(t)

Đặt sự khác biệt. Trả về tất cả các mục trong s, nhưng không phải trong t.

s.discard(item)

Ngã tư. Trả về tất cả các mục trong cả trong s và trong t.

s.intersection_update(t)

Trả về true nếu s là một tập hợp con của t.

s.pop()

Trả về đúng nếu s là một siêu của t.

s.remove(item)

Sự khác biệt đối xứng. Trả về tất cả các mục trong S hoặc T, nhưng không phải trong cả hai bộ.

s.symmetric_difference_update(t)

Liên hiệp. Trả về tất cả các mục trong s hoặc t.

s.update(t)

Các s.diferference (t), s.interection (t), s.symmetric_difference (t) và s.union (t) cung cấp các hoạt động toán học tiêu chuẩn trên các bộ. Giá trị trả về có cùng loại với S (SET hoặc FROZENSET). Tham số T có thể là bất kỳ đối tượng Python hỗ trợ lặp lại. Điều này bao gồm các bộ, danh sách, bộ dữ liệu và chuỗi. Các hoạt động được thiết lập này cũng có sẵn dưới dạng toán tử toán học, như được mô tả thêm trong Chương 4.

Các bộ có thể thay đổi (đặt) Ngoài ra, cung cấp các phương thức được nêu trong Bảng 3.8.

Bảng 3.8 Phương pháp cho các loại bộ có thể thay đổi

Thêm mục vào s. Không có tác dụng nếu mục đã có trong s.

Loại bỏ tất cả các mục từ s.

def foo(x,y):
  return x+y


class A(object):
  @staticmethod
  def foo(x,y):
    return x+y


bar = lambda x,y: x + y

Loại bỏ tất cả các mục từ s cũng có trong t.

Attribute(s)

Sự mô tả

Trả lại số lượng mục trong s.

Chuỗi tài liệu

f .__ name__ hoặc f.func_name

Tên chức năng

f.__dict__orf.func_dict

Từ điển chứa các thuộc tính chức năng

f.func_code

Mã biên dịch byte

f.func_defaults

Tuple chứa các đối số mặc định

f.func_globals

Từ điển xác định không gian tên toàn cầu

f.func_closure

Tuple chứa dữ liệu liên quan đến phạm vi lồng nhau

Các phương thức là các chức năng chỉ hoạt động trên các trường hợp của một đối tượng. Hai loại phương thức Phương pháp và phương thức lớp học và phương thức lớp được xác định bên trong định nghĩa lớp, như được hiển thị ở đây:

class Foo(object):
     def __init__(self):
      self.items = [ ]
     def update(self, x):
      self.items.append(x)
     @classmethod
     def whatami(cls):
      return cls

Phương thức thể hiện là một phương thức hoạt động trên một thể hiện của một đối tượng. Trường hợp được chuyển đến phương thức như là đối số đầu tiên, được gọi là bản thân theo quy ước. Đây là một ví dụ:

f = Foo()
f.update(2)    # update() method is applied to the object f

Một phương thức lớp hoạt động trên chính lớp. Đối tượng lớp được chuyển đến một phương thức lớp trong đối số đầu tiên, CLS. Đây là một ví dụ:

Foo.whatami()  # Operates on the class Foo
f.whatami()    # Operates on the class of f (Foo)

Đối tượng Phương thức ràng buộc là một phương thức được liên kết với một thể hiện đối tượng cụ thể. Đây là một ví dụ:

a = f.update      # a is a method bound to f
b = Foo.whatami   # b is method bound to Foo (classmethod)

Trong ví dụ này, các đối tượng A và B có thể được gọi giống như một hàm. Khi được gọi, chúng sẽ tự động áp dụng cho đối tượng bên dưới mà chúng bị ràng buộc. Đây là một ví dụ:

a(4)    # Calls f.update(4)
b()     # Calls Foo.whatami()

Các phương thức ràng buộc và không liên kết không quá một trình bao bọc mỏng xung quanh một đối tượng hàm thông thường. Các thuộc tính sau được xác định cho các đối tượng Phương thức:

Thuộc tính

Sự mô tả

m.__doc__

Chuỗi tài liệu

m.__name__

Tên phương thức

m.im_class

Lớp trong đó phương pháp này được xác định

m.im_func

Đối tượng chức năng thực hiện phương thức

m.im_self

Ví dụ được liên kết với phương thức (không có nếu không liên kết)

Cho đến nay, cuộc thảo luận này đã tập trung vào các chức năng và phương pháp, nhưng các đối tượng lớp (được mô tả ngắn gọn) cũng có thể gọi được. Khi một lớp được gọi, một thể hiện lớp mới được tạo. Ngoài ra, nếu lớp định nghĩa một phương thức __init __ (), thì nó được gọi để khởi tạo thể hiện mới được tạo.

Một thể hiện đối tượng cũng có thể gọi được nếu nó định nghĩa một phương thức đặc biệt, __call __ (). Nếu phương thức này được xác định cho một thể hiện, x, thì x (args) sẽ gọi phương thức x .__ gọi __ (args).

Các loại đối tượng có thể gọi cuối cùng là các hàm và phương thức tích hợp, tương ứng với mã được viết trong các mô-đun mở rộng và thường được viết bằng C hoặc C ++. Các thuộc tính sau đây có sẵn cho các phương thức tích hợp:

Thuộc tính

Sự mô tả

b.__doc__

Chuỗi tài liệu

b.__name__

Tên phương thức

b.__self__

Lớp trong đó phương pháp này được xác định

Đối tượng chức năng thực hiện phương thức

Ví dụ được liên kết với phương thức (không có nếu không liên kết)

Cho đến nay, cuộc thảo luận này đã tập trung vào các chức năng và phương pháp, nhưng các đối tượng lớp (được mô tả ngắn gọn) cũng có thể gọi được. Khi một lớp được gọi, một thể hiện lớp mới được tạo. Ngoài ra, nếu lớp định nghĩa một phương thức __init __ (), thì nó được gọi để khởi tạo thể hiện mới được tạo.

Một thể hiện đối tượng cũng có thể gọi được nếu nó định nghĩa một phương thức đặc biệt, __call __ (). Nếu phương thức này được xác định cho một thể hiện, x, thì x (args) sẽ gọi phương thức x .__ gọi __ (args).

>>> class Foo(object):
...  pass
...
>>> type(Foo)

Các loại đối tượng có thể gọi cuối cùng là các hàm và phương thức tích hợp, tương ứng với mã được viết trong các mô-đun mở rộng và thường được viết bằng C hoặc C ++. Các thuộc tính sau đây có sẵn cho các phương thức tích hợp:

>>> f = Foo()
>>> type(f)

Tên chức năng/Phương thức

Ví dụ được liên kết với phương pháp

Đối với các chức năng tích hợp như Len (), __Self được đặt thành không có, cho thấy rằng hàm không bị ràng buộc với bất kỳ đối tượng cụ thể nào. Đối với các phương thức tích hợp như X.Append (), trong đó X là đối tượng danh sách, __Self được đặt thành x.

Thuộc tính

Sự mô tả

m.__dict__

Tên phương thức

m.__doc__

Lớp trong đó phương pháp này được xác định

m.__name__

Đối tượng chức năng thực hiện phương thức

m.__file__

Ví dụ được liên kết với phương thức (không có nếu không liên kết)

m.__path__

Cho đến nay, cuộc thảo luận này đã tập trung vào các chức năng và phương pháp, nhưng các đối tượng lớp (được mô tả ngắn gọn) cũng có thể gọi được. Khi một lớp được gọi, một thể hiện lớp mới được tạo. Ngoài ra, nếu lớp định nghĩa một phương thức __init __ (), thì nó được gọi để khởi tạo thể hiện mới được tạo.

Một thể hiện đối tượng cũng có thể gọi được nếu nó định nghĩa một phương thức đặc biệt, __call __ (). Nếu phương thức này được xác định cho một thể hiện, x, thì x (args) sẽ gọi phương thức x .__ gọi __ (args).

Các loại đối tượng có thể gọi cuối cùng là các hàm và phương thức tích hợp, tương ứng với mã được viết trong các mô-đun mở rộng và thường được viết bằng C hoặc C ++. Các thuộc tính sau đây có sẵn cho các phương thức tích hợp:

Các loại nội bộ

Một số đối tượng được thông dịch viên sử dụng được tiếp xúc với người dùng. Chúng bao gồm các đối tượng Traceback, đối tượng mã, đối tượng khung, đối tượng máy phát, đối tượng lát cắt và đối tượng Ellipsis. Nó hiếm khi cần thiết để điều khiển các đối tượng này trực tiếp. Tuy nhiên, các thuộc tính của chúng được cung cấp trong các phần sau để hoàn thiện.

Đối tượng mã

Các đối tượng mã biểu thị mã thực thi có thể thực thi byte thô hoặc mã byte và thường được trả về bởi hàm compile () tích hợp. Các đối tượng mã tương tự như các chức năng ngoại trừ việc chúng không chứa bất kỳ ngữ cảnh nào liên quan đến không gian tên trong đó mã được xác định, cũng như các đối tượng mã lưu trữ thông tin về các giá trị đối số mặc định. Một đối tượng mã, C, có các thuộc tính chỉ đọc sau:

Thuộc tính

Sự mô tả

c.co_name

Tên chức năng.

c.co_argcount

Số lượng đối số vị trí (bao gồm các giá trị mặc định).

c.co_nlocals

Số lượng biến cục bộ được sử dụng bởi hàm.

c.co_varnames

Tuple chứa tên của các biến cục bộ.

c.co_cellvars

Tuple chứa tên của các biến được tham chiếu bởi các hàm lồng nhau.

c.co_freevars

Tuple chứa tên của các biến miễn phí được sử dụng bởi các hàm lồng nhau.

c.co_code

Chuỗi đại diện cho mã byte thô.

c.co_consts

Tuple chứa các chữ được sử dụng bởi mã byte.

c.co_names

Tuple chứa tên được sử dụng bởi mã byte.

c.co_filename

Tên của tệp trong đó mã được biên dịch.

c.co_firstlineno

Số dòng đầu tiên của hàm.

c.co_lnotab

Mã hóa chuỗi ByteCode offsets cho số dòng.

c.co_stacksize

Kích thước ngăn xếp cần thiết (bao gồm các biến cục bộ).

c.co_flags

Số nguyên chứa cờ thông dịch viên. Bit 2 được đặt nếu hàm sử dụng một số biến số của các đối số vị trí bằng cách sử dụng "*args". Bit 3 được đặt nếu hàm cho phép các đối số từ khóa tùy ý bằng cách sử dụng "** kwargs". Tất cả các bit khác được bảo lưu.

Đối tượng khung

Các đối tượng khung được sử dụng để biểu diễn các khung thực thi và thường xuyên nhất xảy ra trong các đối tượng Traceback (được mô tả tiếp theo). Một đối tượng khung, F, có các thuộc tính chỉ đọc sau:

Thuộc tính

Sự mô tả

f.f_back

Tên chức năng.

f.f_code

Số lượng đối số vị trí (bao gồm các giá trị mặc định).

f.f_locals

Số lượng biến cục bộ được sử dụng bởi hàm.

f.f_globals

Tuple chứa tên của các biến cục bộ.

f.f_builtins

Tuple chứa tên của các biến được tham chiếu bởi các hàm lồng nhau.

f.f_restricted

Tuple chứa tên của các biến miễn phí được sử dụng bởi các hàm lồng nhau.

f.f_lineno

Chuỗi đại diện cho mã byte thô.

f.f_lasti

Tuple chứa các chữ được sử dụng bởi mã byte.

Tuple chứa tên được sử dụng bởi mã byte.

Thuộc tính

Sự mô tả

f.f_trace

Tên chức năng.

f.f_exc_type

Số lượng đối số vị trí (bao gồm các giá trị mặc định).

f.f_exc_value

Số lượng biến cục bộ được sử dụng bởi hàm.

f.f_exc_traceback

Tuple chứa tên của các biến cục bộ.

Tuple chứa tên của các biến được tham chiếu bởi các hàm lồng nhau.

Tuple chứa tên của các biến miễn phí được sử dụng bởi các hàm lồng nhau.

Thuộc tính

Sự mô tả

t.tb_next

Tên chức năng.

t.tb_frame

Số lượng đối số vị trí (bao gồm các giá trị mặc định).

t.tb_line

Số lượng biến cục bộ được sử dụng bởi hàm.

t.tb_lasti

Tuple chứa tên của các biến cục bộ.

Tuple chứa tên của các biến được tham chiếu bởi các hàm lồng nhau.

Tuple chứa tên của các biến miễn phí được sử dụng bởi các hàm lồng nhau.

Thuộc tính

Sự mô tả

g.gi_frame

Tên chức năng.

g.gi_running

Số lượng đối số vị trí (bao gồm các giá trị mặc định).

g.next()

Số lượng biến cục bộ được sử dụng bởi hàm.

Tuple chứa tên của các biến cục bộ.

Tuple chứa tên của các biến được tham chiếu bởi các hàm lồng nhau.

Thuộc tính

Sự mô tả

s.start

Tuple chứa tên của các biến miễn phí được sử dụng bởi các hàm lồng nhau.

s.stop

Chuỗi đại diện cho mã byte thô.

s.step

Tuple chứa các chữ được sử dụng bởi mã byte.

Tuple chứa tên được sử dụng bởi mã byte.

s = set([1,5,10,15])
f = frozenset([‘a’,37,’hello’])
0

Đối tượng Ellipsis

Đối tượng Ellipsis được sử dụng để chỉ ra sự hiện diện của dấu chấm lửng (...) trong một lát cắt. Có một đối tượng duy nhất của loại này, được truy cập thông qua Ellipsis tên tích hợp. Nó không có thuộc tính và đánh giá là đúng. Không có loại tích hợp nào của Python, sử dụng dấu chấm lửng, nhưng nó có thể được sử dụng trong các ứng dụng của bên thứ ba.

Các lớp học cổ điển

Trong các phiên bản của Python trước phiên bản 2.2, các lớp và đối tượng đã được triển khai bằng cách sử dụng một cơ chế hoàn toàn khác mà hiện không được chấp nhận. Tuy nhiên, đối với khả năng tương thích ngược, các lớp này, được gọi là các lớp cổ điển hoặc các lớp kiểu cũ, vẫn được hỗ trợ.

Lý do mà các lớp cổ điển không được chấp nhận là do sự tương tác của chúng với hệ thống loại Python. Các lớp cổ điển không xác định các loại dữ liệu mới, cũng không thể chuyên về bất kỳ loại tích hợp nào như danh sách hoặc từ điển. Để khắc phục giới hạn này, Python 2.2 Các loại và lớp hợp nhất trong khi giới thiệu một triển khai khác nhau của các lớp do người dùng xác định.

Một lớp cổ điển được tạo bất cứ khi nào một đối tượng không kế thừa (trực tiếp hoặc gián tiếp) từ đối tượng. Ví dụ:

s = set([1,5,10,15])
f = frozenset([‘a’,37,’hello’])
1

Các lớp cổ điển được triển khai bằng cách sử dụng từ điển chứa tất cả các đối tượng được xác định trong lớp và xác định một không gian tên. Các tham chiếu đến các thuộc tính lớp như C.X được dịch thành Tra cứu từ điển, c .__ Dict __ ["x"]. Nếu một thuộc tính được tìm thấy trong từ điển này, việc tìm kiếm sẽ tiếp tục trong danh sách các lớp cơ sở. Tìm kiếm này là độ sâu đầu tiên theo thứ tự các lớp cơ sở được chỉ định trong định nghĩa lớp. Một gán thuộc tính như C.Y = 5 luôn cập nhật thuộc tính __dict__ của C, không phải là từ điển của bất kỳ lớp cơ sở nào.

Các thuộc tính sau được xác định bởi các đối tượng lớp:

Thuộc tính

Sự mô tả

c.__dict__

Từ điển liên quan đến lớp học

c.__doc__

Chuỗi tài liệu lớp

c.__name__

Tên của lớp

c.__module__

Tên của mô -đun trong đó lớp được xác định

c.__bases__

Tuple chứa các lớp cơ sở

Một thể hiện lớp là một đối tượng được tạo bằng cách gọi một đối tượng lớp. Mỗi trường hợp có không gian tên địa phương riêng được thực hiện như một từ điển. Từ điển này và đối tượng lớp liên quan có các thuộc tính sau:

Thuộc tính

Sự mô tả

x.__dict__

Từ điển liên quan đến lớp học

x.__class__

Chuỗi tài liệu lớp

Tên của lớp

Những gì được xây dựng

Các loại dữ liệu tích hợp trong Python..
Các loại nhị phân: MemoryView, bytearray, byte ..
Loại Boolean: Bool ..
Đặt loại: Frozenset, đặt ..
Loại lập bản đồ: Dict ..
Các loại trình tự: Phạm vi, Tuple, Danh sách ..
Các loại số: phức tạp, nổi, int ..
Loại văn bản: str ..

5 loại dữ liệu có sẵn trong Python là gì?

Python có năm loại dữ liệu tiêu chuẩn:..
Numbers..
String..
Tuple..
Dictionary..

Chức năng sẵn có ở Python là gì?

Các hàm tích hợp Python được định nghĩa là các chức năng có chức năng được xác định trước trong Python.Trình thông dịch Python có một số chức năng luôn có mặt để sử dụng.Các chức năng này được gọi là các chức năng tích hợp.

4 loại dữ liệu trong Python là gì?

Các giá trị số nguyên, phao và phức tạp thuộc loại dữ liệu số Python.Python cung cấp hàm loại () để biết loại dữ liệu của biến.