Python列印類的屬性

小小程序员ol發表於2024-07-24

一、使用__dict__列印類的屬性

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

person = Person("Tom", 18)
print(person.__dict__)

使用__dict__方法可以直接列印出類的屬性及其對應的值。上述程式碼中,我們首先定義了一個Person類,該類有兩個屬性name和age。然後我們透過例項化一個Person物件,並將其傳遞給print函式的__dict__方法,最終輸出了類的屬性和其對應的值。

雖然該方法簡單方便,但是它只能輸出例項化物件的屬性,並不能輸出類的屬性。

二、使用vars方法列印類的屬性

class Person:
    name = "default"
    age = 0

print(vars(Person))

在上面的程式碼中使用vars方法可以列印類的屬性,vars方法跟__dict__方法類似,可以幫助我們獲取類的屬性和其對應的值。在此示例程式碼中,我們定義了一個Person類,該類有兩個屬性name和age,並透過vars方法列印該類的屬性和其對應的值。

需要注意的是,vars方法只能列印類中定義的屬性,而不能列印例項化物件的屬性。

三、使用dir方法列印類的屬性

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

person = Person("Tom", 18)
print(dir(person))

使用dir方法可以列印出例項化物件的所有屬性、方法以及內建屬性等。在此示例程式碼中,我們定義了一個Person類,該類有兩個屬性name和age,並例項化一個Person物件。在print語句中我們使用dir方法列印該物件的屬性和方法。

需要注意的是,dir方法會輸出例項化物件的所有內建屬性和方法,包括一些我們不需要的屬性和方法,因此需要篩選出需要的資訊。

四、使用inspect模組列印類的屬性

import inspect

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

#小編建立了一個Python學習交流群:531509025
person = Person("Tom", 18)
print(inspect.getmembers(person))

最後一個方法是使用Python標準庫中的inspect模組來列印類的屬性和方法。在此示例程式碼中,我們首先匯入了inspect模組,然後定義了一個Person類,該類有兩個屬性name和age。接著我們例項化了一個Person物件,並使用inspect.getmembers方法列印該物件的屬性和方法。

相比於前面的三個方法,inspect模組可以更精確地篩選出需要的資訊,並且輸出的格式更加友好易讀。需要注意的是,inspect.getmembers方法同樣只能列印例項化物件的屬性和方法。

總結

本篇文章介紹了四種不同的方法來列印Python類的屬性,它們分別是使用__dict__方法、vars方法、dir方法以及inspect模組。這些方法都能夠幫助我們更好地瞭解類的結構和屬性,並且可以對類的設計和實現提供幫助。

相關文章