Python面向对象—类属性和实例属性

python

属性:就是属于一个对象的数据或函数元素

类有类方法、实例方法、静态方法、类数据属性(类变量)和实例数据属性(实例变量)。

类属性:包括类方法和类变量,可以通过类或实例来访问,只能通过类来修改。

实例属性:包括实例方法和实例变量

class MyClass(object):

name = 'Anl'

def __init__(self, age):

self.age = age

@classmethod

def class_method(cls):

print 'class_name:', cls.name #类方法访问类变量

print "I'm class method"

def example_method(self):

self.age = 20

print 'example_name:', self.__class__.name # 实例方法访问类变量

print "I'm a method, and age is %d" % self.age

@staticmethod

def static_method():

print "I'm static method"

使用类来访问类变量

MyClass.name   
#结果为 'Anl'

使用类来修改类变量

MyClass.name = 'Delav'  

print MyClass.name
#结果为'Delav'

使用类来访问类方法

MyClass.class_method()   
#结果为
class_name: Delav
I'm class method

使用类来访问静态方法

MyClass.static_method()   
#结果为
I'm static method

修改实例变量

ob = MyClass(20) #实例化

print ob.age #结果为20

ob.age = 23 #修改实例属性

print ob.age #结果为23

使用实例来访问类变量

print ob.name   #结果为 'Delav'

使用实例来访问实例方法

ob.example_method(25)    
#结果为
example_name: Delav
I'm example method , and age is 25

使用实例来访问类方法

ob.class_method()    
#结果为
class_name: Delav
I'm class method

使用实例来访问静态方法

ob.static_method()   #结果为 I'm static method

修改实例属性,类变量不变,实例变量改变

ob.name = 'Bon'    

print MyClass.name #结果为 Delav

print ob.name #结果为 Bon

总的结果

a = MyClass(20)

以上是 Python面向对象—类属性和实例属性 的全部内容, 来源链接: utcz.com/z/388761.html

回到顶部