作为一种面向对象的编程语言,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