首页 > 代码库 > Python--day7--面向对象编程进阶

Python--day7--面向对象编程进阶

介绍

学习记录。。。。

目录:

  1. 面向对象高级语法部分

  • 字段

  • 方法

  • 属性

经典类 新式类类的特殊成员反射

  • 字段


    • 普通字段

    • 静态字段

  • 方法


    • 普通方法

    • 类方法

    • 静态方法

  • 属性


    • 普通属性

    • 私有属性

字段

普通字段    属于对象, 实例变量,存在每个实例里面,进行实例的时候,开辟一个实例对象,

静态字段    属于类,类变量, 内存中存在类里面,没实例化,也存在。

方法

class Animal:
    def __init__(self,name):
        self.name=name
    hobbie = ‘meat‘
    @classmethod ##类方法,不能访问实例变量
    def talk(self):
        print("{}  is   talking".format(self.hobbie))
    @staticmethod  ##静态方法,不能访问类变量 和实例变量,大多情况不用,类的工具箱
    def walk():
        print(" is   talking")
    @property   ##属性,下面就不是方法了,变成了一个属性,但是依然可以访问实例和类变量
    def  habit(self):
        print("{}  habit  is  xxoo".format(self.name))
d = Animal("Hequan")
Animal.talk()
d.talk()
d.walk()
d.habit
meat  is   talking
meat  is   talking
 is   talking
Hequan  habit  is  xxoo


私有属性 __

self.__num=num


经典类: 深度有限

新式类:广度优先


类的特殊成员

  1. __doc__         打印注释

  2. __module__   表示当前操作的对象在那个模块

  3. __class__       表示当前操作的对象的类是什么

  4. __init__          构造方法,通过类创建对象时,自动触发执行

  5. __del__          析构方法,当对象在内存中被释放时,自动触发执行。执行完成后,统一销毁。

  6. __call__          对象后面加括号,触发执行 

  7. __dict__         查看类或对象中的所有成员、

  8. __new__ \ __metaclass__    类的生成 调用 顺序依次是 __new__ --> __call__ --> __init__


反射

通过字符串映射或修改程序运行时的状态、属性、方法

  1. hasattr

  2. getattr

  3. setattr

  4. delattr

if __name__=="__main__":

    server = WebServer(‘localhost‘,3306)

    if   hasattr(server,sys.argv[1]):              

        func = getattr(server,sys.argv[1])     ##获取执行后面加的值  如 start

        func()



本文出自 “何全” 博客,请务必保留此出处http://hequan.blog.51cto.com/5701886/1886936

Python--day7--面向对象编程进阶