Ví dụ về python yếu

Nếu điều này là không đủ, có những chức năng khác mà bạn có thể gọi trên một đối tượng để có được thông tin cụ thể hơn về đối tượng

  • loại (đối tượng). Trả về tên của lớp cài đặt đối tượng
  • thư mục (obj). Trả về tất cả các phương thức và biến của đối tượng
  • id(đối tượng). Trả về giá trị duy nhất được xác định của đối tượng (địa chỉ bộ nhớ)
  • hasattr(đối tượng, tên). Kiểm tra nếu một thuộc tính thuộc về một đối tượng
  • getattr(obj, tên, mặc định). Nhận một thuộc tính có thể thuộc về một đối tượng
  • có thể gọi được (obj). Kiểm tra xem một đối tượng có thể gọi được hay không, nghĩa là nó có thể được gọi

Trong hướng dẫn này, chúng ta sẽ xem xét kỹ hơn từng hàm tích hợp này để giúp khám phá các đối tượng Python dễ dàng nhất có thể

Trước khi chúng ta bắt đầu

Trước khi chúng tôi bắt đầu sử dụng các chức năng trên, chúng tôi cần một đối tượng mà chúng tôi có thể kiểm tra. Đối tượng này có thể là bất kỳ đối tượng nào trong Python

Để đơn giản, bạn sẽ sử dụng một lớp ví dụ đơn giản và đối tượng của nó trong suốt hướng dẫn này

Đây là lớp học

hạng cân. """ Hạng cân mô tả trọng lượng là kilôgam. """ def __init__(bản thân, kilôgam). """ Tự gán số kg cho đối tượng Trọng lượng """. kilos = kilos de topoounds(self). """ Chuyển đổi kilôgam sang bảng Anh. 1 kilôgam = 2. 2048 bảng Anh """ tự trả lại. kilôgam * 2. 2048

Xuyên suốt hướng dẫn này, bạn sẽ làm việc với lớp này hoặc các đối tượng được tạo từ nó

Cứu giúp()

Hàm help() tích hợp sẵn hiển thị thông tin hữu ích về đối tượng được truyền dưới dạng đối số

Bạn có thể gọi help() trên các mô-đun, hàm, lớp, biến, v.v.

Hãy xem cách triển khai lớp Trọng lượng trong chương trước. Bạn thấy ba bình luận trong dấu ngoặc kép khắp lớp. Trên thực tế, đây không phải là những bình luận. Thay vào đó, chúng được gọi là docstrings

Chuỗi tài liệu là một phần tài liệu được chọn bởi hàm help(). Hàm help() hiển thị chuỗi tài liệu này trong bảng điều khiển để giúp nhà phát triển nhanh chóng xem đối tượng là gì. Nhân tiện, để mô tả một đối tượng bằng một chuỗi tài liệu, bạn cần chỉ định nó ở dòng đầu tiên sau định nghĩa

Ví dụ, hãy gọi help() trên phương thức topounds() của lớp Weight

trợ giúp (Trọng lượng. topo)

đầu ra

Trợ giúp về chức năng topounds trong mô-đun __main__. topounds(self) Đổi kilôgam sang pao. 1 kilôgam = 2. bảng Anh 2048

Điều này sẽ hiển thị chuỗi tài liệu bạn đã chỉ định ở phần đầu của định nghĩa phương thức topounds()

Bây giờ bạn đã hiểu hàm help() làm gì, hãy gọi nó trên toàn bộ lớp Trọng lượng

trợ giúp (Trọng lượng)

đầu ra

Trợ giúp về trọng lượng lớp trong mô-đun __main__. trọng lượng lớp (nội trang. sự vật). Trọng lượng (kg). . Hạng cân mô tả trọng lượng là kilôgam. . . Các phương thức được định nghĩa ở đây. . . __init__(bản thân, kilôgam). Gán số kg cho đối tượng Weight. . topounds (bản thân). Chuyển đổi kilôgam sang bảng Anh. . 1 kilôgam = 2. bảng Anh 2048. . -------------------------------------------------- . Bộ mô tả dữ liệu được xác định tại đây. . . __dict__. từ điển cho các biến thể hiện (nếu được xác định). . __weakref__ --Thêm--

Ở đây bạn có thể thấy mọi thứ liên quan đến lớp học. Đầu tiên, bạn thấy các tài liệu bạn đã viết vào lớp. Sau đó, bạn sẽ thấy một loạt tài liệu được tạo tự động liên quan đến các thuộc tính của lớp

Dù sao thì bây giờ bạn đã hiểu khá rõ về cách thức hoạt động của hàm help() trong Python. Hãy nhớ rằng, bạn có thể gọi hàm này trên bất kỳ đối tượng Python nào để tham khảo nhanh

Ví dụ: bạn có thể gọi nó trực tiếp trên đối tượng Trọng lượng thay vì lớp Trọng lượng

w1 = Trọng lượng(100) trợ giúp(w1)

Điều này dẫn đến kết quả giống như trợ giúp (Trọng lượng)

loại hình()

Trong Python, bạn có thể lấy thông tin kiểu về một đối tượng bằng hàm type() tích hợp

Theo thông tin loại, ý tôi là thông tin về lớp thực hiện đối tượng

Hãy sử dụng ví dụ lớp Weight được xác định trước đó để minh họa cách thức hoạt động của hàm type()

w1 = Trọng lượng(100) bản in(loại(w1))

đầu ra

Điều này cho bạn biết đối tượng w1 thuộc loại Trọng lượng

Bây giờ, bạn có thể sử dụng hàm type() để kiểm tra loại của bất kỳ thứ gì

Ví dụ: hãy kiểm tra loại chuỗi

word = "Kiểm tra" in (loại (từ))

đầu ra

Điều này cho bạn biết rằng từ đó thuộc loại str, đây thực sự là loại tích hợp đại diện cho các chuỗi Python

Đôi khi bạn thấy type() được gọi với ba đối số. Điều này không liên quan gì đến hàm type(). Thay vào đó, nó là loại lớp được sử dụng trong siêu lập trình. Nếu bạn quan tâm, hãy kiểm tra bài viết này

dir()

Để liệt kê tất cả các thuộc tính của một đối tượng, hãy sử dụng hàm dir() tích hợp

Nó trả về một danh sách dài các tên thuộc tính, nghĩa là tên phương thức và tên biến của đối tượng

Ví dụ: hãy tạo một đối tượng Trọng lượng và liệt kê các thuộc tính của nó

w1 = Trọng lượng(100) in(dir(w1))

đầu ra

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '

Có một loạt các thuộc tính được tạo tự động trong bất kỳ lớp Python nào. Chúng được liệt kê đầu tiên khi gọi hàm dir()

Nhưng hãy nhìn vào cuối danh sách. Ở đó, bạn có thể thấy các thuộc tính 'kilos' và 'topounds' mà chúng tôi đã triển khai trong lớp. Ngoài ra, bạn cũng có thể tìm thấy '__init__' được đề cập ở giữa danh sách

Một lần nữa, bạn có thể gọi hàm dir() trên bất kỳ đối tượng Python nào

Ví dụ: hãy nhập mô-đun toán học và liệt kê tất cả các phương thức mà nó có

nhập bản in toán học (dir (math))

đầu ra

['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', '

Nếu bạn nhìn vào các tên không có __, bạn sẽ thấy một số tên biến/phương thức quen thuộc ở đó. Đây là tất cả các biến và phương thức thuộc về mô-đun toán học

Tôi()

Trong Python, mỗi đối tượng có một danh tính. Danh tính là một giá trị số nguyên không đổi trong suốt thời gian tồn tại của đối tượng

Để truy cập ID bất kỳ đối tượng Python nào, bạn có thể gọi hàm id() tích hợp trên đó

Chẳng hạn, hãy tạo một đối tượng Trọng lượng và kiểm tra danh tính của nó

w1 = Trọng lượng(100) in(id(w1))

đầu ra

140701211565024

Thao tác này có thể hữu ích để kiểm tra xem hai đối tượng có giống nhau không. Nếu danh tính của hai đối tượng khớp nhau, điều đó có nghĩa là cả hai đều tham chiếu đến cùng một đối tượng trong bộ nhớ, mỗi đối tượng có một bí danh khác nhau

Ví dụ: hãy tạo hai đối tượng Trọng lượng w1 và w2 sao cho w2 được đặt bằng w1

w1 = Trọng lượng(100) w2 = w1

Điều xảy ra đằng sau hậu trường là cả w1 và w2 đều trỏ đến cùng một đối tượng Trọng lượng (100) trong bộ nhớ

Đây là một minh họa

Ví dụ về python yếu

Nói cách khác, cả w1 và w2 bây giờ sẽ có cùng một ID khi chúng trỏ đến cùng một đối tượng trong bộ nhớ

Hãy kiểm tra xem đây có phải là trường hợp không

in(id(w1)) in(id(w2))

đầu ra

140249810303968 140249810303968

Các ID khớp nhau, vì vậy các đối tượng w1 và w2 là cùng một đối tượng

Cũng như các chức năng trước, bạn cũng có thể gọi id() trên bất kỳ đối tượng Python nào để kiểm tra danh tính của nó

hasattr()

Phương thức hasattr() có thể được sử dụng để kiểm tra xem một đối tượng có thuộc tính cụ thể hay không

Cú pháp như sau

hasattr(đối tượng, tên)

Ở đâu

  • obj là đối tượng được kiểm tra
  • tên là tên (dưới dạng chuỗi) của thuộc tính có thể

Hàm này trả về True nếu thuộc tính tồn tại và Sai nếu không

Chẳng hạn, hãy kiểm tra xem lớp Weight mà bạn đã triển khai trước đó có một thuộc tính gọi là topounds hay không

print(hasattr(Trọng lượng, "topounds"))

đầu ra

ĐÚNG VẬY

Bạn có thể gọi hàm này trên bất kỳ đối tượng Python nào để xem có thuộc tính nào có tên cụ thể không

Ví dụ: hãy kiểm tra xem các thuộc tính kilos và topounds có thể gọi được trong lớp Trọng lượng mà bạn đã triển khai trước đó không