Python 中訪問屬性和方法


作為一種面向物件的程式語言,Python 強調物件。類是建立物件的藍圖。Python 中的每個類都可以具有許多屬性,包括函式作為屬性。

訪問類的屬性

為了檢查類的屬性以及操作這些屬性,我們使用了許多 Python 內建方法,如下所示。

  • getattr() − 用於訪問類屬性的 Python 方法。

  • hasattr()  − 用於驗證類中是否存在屬性的 Python 方法。

  • setattr() − 用於在類中設定附加屬性的 Python 方法。

下面的程式說明了如何使用上述方法在 Python 中訪問類屬性。

示例

class StateInfo:
   StateName='Telangana'
   population='3.5 crore'

   def func1(self):
      print("Hello from my function")

print getattr(StateInfo,'StateName')

# returns true if object has attribute
print hasattr(StateInfo,'population')

setattr(StateInfo,'ForestCover',39)

print getattr(StateInfo,'ForestCover')

print hasattr(StateInfo,'func1')

輸出

執行以上程式碼將得到以下結果:

Telangana
True
39
True

訪問類的方法

要訪問類的方法,我們需要將類例項化為物件。然後我們可以將方法作為類的例項方法訪問,如下面的程式所示。在這裡,透過 self 引數,例項方法可以訪問同一物件上的屬性和其他方法。

示例

class StateInfo:
   StateName='Telangana'
   population='3.5 crore'

   def func1(self):
      print("Hello from my function")

print getattr(StateInfo,'StateName')

# returns true if object has attribute
print hasattr(StateInfo,'population')

setattr(StateInfo,'ForestCover',39)

print getattr(StateInfo,'ForestCover')

print hasattr(StateInfo,'func1')

obj = StateInfo()
obj.func1()

輸出

執行以上程式碼將得到以下結果:

Telangana
True
39
True
Hello from my function

從另一個類訪問一個類的方法

要從另一個類訪問一個類的方法,我們需要將被呼叫類的例項傳遞給呼叫類。下面的示例展示了它是如何完成的。

示例

class ClassOne:
def m_class1(self):
print "Method in class 1"

# Definign the calling Class
class ClassTwo(object):
def __init__(self, c1):
self.c1 = c1

# The calling method
def m_class2(self):
Object_inst = self.c1()
Object_inst.m_class1()

# Passing classone object as an argument to classTwo
obj = ClassTwo(ClassOne)
obj.m_class2()

輸出

執行以上程式碼將得到以下結果:

Method in class 1

更新於: 2020年6月30日

13K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.