當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python getattr()用法及代碼示例


在本教程中,我們將借助示例了解 Python getattr() 方法。

getattr() 方法返回對象的命名屬性的值。如果未找到,則返回提供給函數的默認值。

示例

class Student:
  marks = 88
  name = 'Sheeran'

person = Student()

name = getattr(person, 'name')
print(name)

marks = getattr(person, 'marks')
print(marks)

# Output: Sheeran
#         88

getattr() 語法

用法:

getattr(object, name[, default])

上麵的語法等價於:

object.name

參數:

getattr() 方法采用多個參數:

  • object- 要返回其命名屬性值的對象
  • name- 包含屬性名稱的字符串
  • 默認(可選)- 未找到命名屬性時返回的值

返回:

getattr() 方法返回:

  • 給定對象的命名屬性的值
  • default ,如果沒有找到命名屬性
  • AttributeError 異常,如果未找到命名屬性且未定義 default

示例 1:getattr() 如何在 Python 中工作?

class Person:
    age = 23
    name = "Adam"

person = Person()
print('The age is:', getattr(person, "age"))
print('The age is:', person.age)

輸出

The age is: 23
The age is: 23

示例 2:getattr() 未找到命名屬性時

class Person:
    age = 23
    name = "Adam"

person = Person()

# when default value is provided
print('The sex is:', getattr(person, 'sex', 'Male'))

# when no default value is provided
print('The sex is:', getattr(person, 'sex'))

輸出

The sex is: Male
AttributeError: 'Person' object has no attribute 'sex'

命名屬性 sex 不在類 Person 中。因此,當使用默認值 Male 調用 getattr() 方法時,它會返回 Male。

但是,如果我們不提供任何默認值,當未找到命名屬性 sex 時,它會引發 AttributeError 表示該對象沒有 sex 屬性。

相關用法


注:本文由純淨天空篩選整理自 Python getattr()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。