Hướng dẫn how do i find the attributes of an object in python? - làm cách nào để tìm các thuộc tính của một đối tượng trong python?

Tôi sử dụng __dict__dir()

Example::

class MyObj(object):
  def __init__(self):
    self.name = 'Chuck Norris'
    self.phone = '+6661'

obj = MyObj()
print(obj.__dict__)
print(dir(obj))

# Output:  
# obj.__dict__ --> {'phone': '+6661', 'name': 'Chuck Norris'}
#
# dir(obj)     --> ['__class__', '__delattr__', '__dict__', '__doc__',
#               '__format__', '__getattribute__', '__hash__', 
#               '__init__', '__module__', '__new__', '__reduce__', 
#               '__reduce_ex__', '__repr__', '__setattr__', 
#               '__sizeof__', '__str__', '__subclasshook__', 
#               '__weakref__', 'name', 'phone']

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để in các thuộc tính của đối tượng. Lặn vào thế giới thú vị của lập trình hướng đối tượng có vẻ là một nhiệm vụ áp đảo, khi bạn chỉ bắt đầu với Python. Biết cách truy cập các thuộc tính của đối tượng và có thể in tất cả các thuộc tính của đối tượng Python, là một kỹ năng quan trọng để giúp bạn điều tra các đối tượng Python của mình và, có lẽ, thậm chí còn làm một chút khắc phục sự cố.

Chúng tôi sẽ kết thúc hướng dẫn bằng cách học cách in ra các thuộc tính ở định dạng đẹp hơn, sử dụng mô -đun

class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
0!

Hãy cùng xem những gì bạn học được!

Câu trả lời nhanh: Sử dụng hàm Dir ()Use the dir() Function

Hướng dẫn how do i find the attributes of an object in python? - làm cách nào để tìm các thuộc tính của một đối tượng trong python?

  • Đối tượng Python là gì?
  • Thuộc tính đối tượng Python là gì?
  • Sử dụng Python từ Dir để in các thuộc tính đối tượng
  • Sử dụng python từ vars () để in một thuộc tính đối tượng
  • Sự kết luận

Đối tượng Python là gì?

Thuộc tính đối tượng Python là gì?

Sử dụng Python từ Dir để in các thuộc tính đối tượng

Sử dụng python từ vars () để in một thuộc tính đối tượng

class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies

Python là một ngôn ngữ hướng đối tượng-vì điều này, phần lớn mọi thứ trong Python là một đối tượng. Để tạo các đối tượng, chúng tôi tạo các lớp, là bản thiết kế cho các đối tượng. Các lớp này xác định những thuộc tính mà một đối tượng có thể có và phương thức nào mà một đối tượng có thể có, tức là, những gì nó có thể làm.

Hãy để tạo ra một lớp Python khá đơn giản mà chúng ta có thể sử dụng trong suốt hướng dẫn này. Chúng tôi sẽ tạo ra một lớp

class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
1, trong đó sẽ một vài thuộc tính và phương thức đơn giản.

teddy = Dog(name='Teddy', age=3, puppies=0)

Bắt đầu nào!

Những gì chúng tôi đã thực hiện ở đây, được tạo ra lớp

class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
1 của chúng tôi, có các thuộc tính thể hiện của
class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
3,
class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
4 và
class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
5 và các phương thức của
class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
6 và
class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
7.

Bây giờ, hãy tạo ra một thể hiện của đối tượng này:

Bây giờ chúng ta có một đối tượng Python của lớp

class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
1, được gán cho biến
class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
9. Hãy để xem cách chúng ta có thể truy cập một số thuộc tính đối tượng của nó.

Trong phần này, bạn sẽ học cách truy cập các thuộc tính của đối tượng Python.

Dựa trên định nghĩa lớp ở trên, chúng tôi biết rằng đối tượng có một số thuộc tính thể hiện - cụ thể là tên, tuổi và chó con.

Chúng ta có thể truy cập một thuộc tính thể hiện đối tượng bằng cách hậu tố tên của thuộc tính vào đối tượng.

Hãy để in ra Teddy từ Age:

Một trong những cách dễ nhất để truy cập vào các thuộc tính của đối tượng Python là hàm

teddy = Dog(name='Teddy', age=3, puppies=0)
1. Hàm này được tích hợp trực tiếp vào Python, do đó, không cần phải nhập bất kỳ thư viện nào.

Hãy cùng xem cách hoạt động của chức năng này:

# Printing an object's attributes using the dir() function
attributes = dir(teddy)

# Returns:
# ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'birthday', 'have_puppies', 'name', 'puppies']

Chúng ta có thể thấy ở đây rằng bản in này trong số tất cả các thuộc tính của một đối tượng Python, bao gồm cả các thuộc tính được xác định trong định nghĩa lớp.

Hàm

teddy = Dog(name='Teddy', age=3, puppies=0)
1 trả về. Danh sách các tên tồn tại trong phạm vi cục bộ hiện tại trả về danh sách các tên của các thuộc tính hợp lệ của đối tượng.

Chúng ta hãy xem xét chức năng

teddy = Dog(name='Teddy', age=3, puppies=0)
3 cần phải xem một cách sâu hơn để in các thuộc tính của đối tượng.

Kiểm tra một số hướng dẫn Python khác về DataGy, bao gồm hướng dẫn đầy đủ của chúng tôi về Gấu trúc kiểu dáng và tổng quan toàn diện của chúng tôi về các bảng xoay vòng trong gấu trúc!

Sử dụng Python từ teddy = Dog(name='Teddy', age=3, puppies=0)3 để in các thuộc tính đối tượng

Hàm

teddy = Dog(name='Teddy', age=3, puppies=0)
1, như được hiển thị ở trên, in tất cả các thuộc tính của một đối tượng Python. Hãy nói rằng bạn chỉ muốn in các thuộc tính thể hiện đối tượng cũng như các giá trị của chúng, chúng ta có thể sử dụng hàm
teddy = Dog(name='Teddy', age=3, puppies=0)
3.

Hãy để xem cách thức hoạt động của nó:

print(vars(teddy))

# Same as print(teddy.__dict__)

# Returns:
# {'name': 'Teddy', 'age': 3, 'puppies': 0}

Chúng ta có thể thấy từ mã trên mà chúng ta đã trả lại một từ điển của các thuộc tính thể hiện của đối tượng

class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
9.

Cách thức hoạt động này thực sự là bằng cách truy cập thuộc tính __dict__, trả về một từ điển của tất cả các thuộc tính thể hiện.

Chúng ta cũng có thể gọi phương pháp này trên chính định nghĩa lớp. Hãy cùng xem cách mà khác với việc gọi nó trên một đối tượng:

print(vars(Dog))

# Returns
# {'__module__': '__main__', '__init__': , 'birthday': , 'have_puppies': , '__dict__': , '__weakref__': , '__doc__': None}

Chúng ta có thể thấy ở đây rằng điều này thực sự trả về nhiều hơn đáng kể so với việc gọi chức năng trên một thể hiện đối tượng.

Từ điển cũng bao gồm tất cả các phương thức được tìm thấy trong lớp, cũng như các thuộc tính khác được cung cấp bởi phương thức

teddy = Dog(name='Teddy', age=3, puppies=0)
1.

Nếu chúng tôi muốn in đẹp hơn, chúng tôi có thể sử dụng mô -đun in đẹp ____10. Hãy để xem cách chúng ta có thể làm điều này:

import pprint

pprint.pprint(vars(Dog))

# Returns:
# {'__dict__': ,
              '__doc__': None,
              '__init__': ,
              '__module__': '__main__',
              '__weakref__': ,
              'birthday': ,
              'have_puppies': }

Bây giờ bạn đã học cách in ra tất cả các thuộc tính của một đối tượng Python ở một định dạng đẹp hơn!

Sự kết luận

Trong bài đăng này, bạn đã học cách in ra các thuộc tính của một đối tượng Python. Bạn đã học cách tạo một lớp Python đơn giản và cách tạo một đối tượng. Sau đó, bạn đã học cách in ra tất cả các thuộc tính của một đối tượng Python bằng cách sử dụng các hàm

teddy = Dog(name='Teddy', age=3, puppies=0)
1 và
teddy = Dog(name='Teddy', age=3, puppies=0)
3. Cuối cùng, bạn đã học cách sử dụng mô -đun
class Dog:
    def __init__(self, name, age, puppies):
        self.name = name
        self.age = age
        self.puppies = puppies

    def birthday(self):
        self.age += 1

    def have_puppies(self, number_puppies):
        self.have_puppies += number_puppies
0 để in ra các thuộc tính ở định dạng đẹp hơn.

Để tìm hiểu thêm về chức năng

teddy = Dog(name='Teddy', age=3, puppies=0)
1, hãy xem tài liệu chính thức ở đây.

Thuộc tính đối tượng trong Python là gì?

Thuộc tính thể hiện/đối tượng là một biến thuộc về một đối tượng (và chỉ một) đối tượng.Mỗi phiên bản của một lớp trỏ đến các biến thuộc tính của chính nó.Các thuộc tính này được xác định trong hàm tạo __init__.a variable that belongs to one (and only one) object. Every instance of a class points to its own attributes variables. These attributes are defined within the __init__ constructor.

Các thuộc tính của một đối tượng là gì?

Một đặc tính đối tượng luôn có mặt và chiếm lưu trữ, ngay cả khi thuộc tính không có giá trị.Về mặt này, một thuộc tính tương tự như một trường trong cấu trúc dữ liệu có độ dài cố định.Một tính năng phân biệt của các thuộc tính là mỗi thuộc tính có các phương thức riêng để thiết lập và nhận giá trị của nó.. In this respect, an attribute is similar to a field in a fixed-length data structure. A distinguishing feature of attributes is that each attribute has its own methods for setting and getting its value.