新聞中心
getattr函數(shù)是Python中的一個內(nèi)置函數(shù),用于獲取對象的屬性值,它的語法格式如下:

getattr(object, name[, default])
參數(shù)說明:
object:對象,可以是模塊、類、實例等。
name:字符串,表示要獲取的屬性名。
default:可選參數(shù),當指定的屬性不存在時,返回該參數(shù)的值,如果不提供此參數(shù),將拋出AttributeError異常。
getattr函數(shù)的主要作用是從對象中獲取指定屬性的值,如果屬性存在,則返回屬性值;如果屬性不存在且提供了default參數(shù),則返回default值;如果屬性不存在且未提供default參數(shù),則拋出AttributeError異常。
下面通過一些示例來詳細講解getattr函數(shù)的使用方法:
1、獲取實例屬性值
假設我們有一個名為Person的類,包含name和age兩個屬性:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("張三", 30)
我們可以使用getattr函數(shù)來獲取p實例的name和age屬性值:
name_value = getattr(p, "name") age_value = getattr(p, "age") print(name_value) # 輸出:張三 print(age_value) # 輸出:30
2、獲取類屬性值
Person類還包含一個類屬性species:
class Person:
species = "人類"
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("張三", 30)
我們可以使用getattr函數(shù)來獲取Person類的species屬性值:
species_value = getattr(Person, "species") print(species_value) # 輸出:人類
3、獲取模塊屬性值
假設我們有一個名為math_utils的模塊,其中定義了一個函數(shù)add:
math_utils.py
def add(a, b):
return a + b
我們可以使用getattr函數(shù)來獲取math_utils模塊的add函數(shù):
import math_utils add_function = getattr(math_utils, "add") result = add_function(1, 2) print(result) # 輸出:3
4、使用default參數(shù)避免AttributeError異常
假設我們要獲取一個不存在的屬性gender,可以提供一個default參數(shù)來避免拋出AttributeError異常:
gender_value = getattr(p, "gender", "未知") print(gender_value) # 輸出:未知
getattr函數(shù)是一個非常實用的Python內(nèi)置函數(shù),可以幫助我們方便地獲取對象的屬性值,在使用時,需要注意屬性名的正確性以及是否需要提供default參數(shù)。
網(wǎng)站標題:getattr函數(shù)python
當前路徑:http://www.dlmjj.cn/article/cdgpjdo.html


咨詢
建站咨詢
