zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    网页图表Highcharts实践教程标之添加题副标题版权信息
    S3C6410 裸机硬件JPEG解码(转)
    FPGA UART简单的串口接收模块
    unicode转GBK,GNK转unicode,解决FATFS中文码表占用ROM问题(转)
    Java 基础类型转换byte数组, byte数组转换基础类型
    JNI错误总结(转)
    Java通过JNI调用dll详细过程(转)
    UDP传输包大小(转)
    SD卡兼容性问题(转)
    汉字与区位码互转(转)
  • 原文地址:https://www.cnblogs.com/delav/p/9420394.html
Copyright © 2011-2022 走看看