新聞中心
在Python中,我們可以使用內(nèi)置的dir()函數(shù)來(lái)查看一個(gè)類(lèi)的所有屬性和方法。dir()函數(shù)返回一個(gè)列表,其中包含了對(duì)象的所有屬性和方法,這個(gè)列表中的每個(gè)元素都是一個(gè)字符串,代表了對(duì)象的一個(gè)屬性或方法的名稱(chēng)。

我們需要?jiǎng)?chuàng)建一個(gè)類(lèi),我們創(chuàng)建一個(gè)名為Person的類(lèi),它有兩個(gè)屬性(name和age)和一個(gè)方法(introduce):
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print(f"My name is {self.name} and I am {self.age} years old.")
我們可以創(chuàng)建一個(gè)Person類(lèi)的實(shí)例,并使用dir()函數(shù)來(lái)查看它的所有屬性和方法:
p = Person("Alice", 25)
print(dir(p))
運(yùn)行上述代碼,你將看到一個(gè)包含許多字符串的列表,這些字符串代表了p對(duì)象的所有屬性和方法,你會(huì)看到'name'、'age'和'introduce'都在這個(gè)列表中,這就是我們定義在Person類(lèi)中的兩個(gè)屬性和一個(gè)方法。
dir()函數(shù)返回的列表中還包含了很多其他的字符串,這些字符串代表的是Python內(nèi)建的特殊方法,如__init__、__str__等,這些特殊方法是Python語(yǔ)言的一部分,我們不需要關(guān)心它們。
如果我們只想看到我們自己定義的屬性和方法,我們可以使用列表推導(dǎo)式來(lái)過(guò)濾掉那些特殊方法:
p = Person("Alice", 25)
my_attributes_and_methods = [attr for attr in dir(p) if not attr.startswith('__')]
print(my_attributes_and_methods)
這樣,我們就只看到了我們自己定義的屬性和方法:['age', 'introduce', 'name']。
dir()函數(shù)是一個(gè)非常有用的工具,它可以幫助我們查看Python對(duì)象的所有屬性和方法,我們也需要注意,dir()函數(shù)返回的列表中包含了很多Python內(nèi)建的特殊方法,如果我們只想看到我們自己定義的屬性和方法,我們需要使用列表推導(dǎo)式來(lái)過(guò)濾掉那些特殊方法。
當(dāng)前文章:python查看類(lèi)方法
URL鏈接:http://fisionsoft.com.cn/article/djeicog.html


咨詢(xún)
建站咨詢(xún)
