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
广告