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+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告