• 类(面向对象、增删改查、继承、多态、封装、反射)


    类的增删改查可以操作类里面的函数、数据属性,实例。

    1.函数与类的区别
    函数实现功能的模块化
    类是实现功能和数据的模块化
    ——init——类的构造:初始化类,实例化的时候自动执行
    2.类用法

    4.什么是类,
    类是把一类事物的相同的特征和同一动作整合到一类,类是抽象的
    5.什么是对象
    对象就是基于类创建的一种事物,也是特征和动作整合到一起的
    6.面向对象
    就是__init__独特构造
    7.类和对象的关系
    对象都是类产生的。
    8.实例化:有类产生的过程叫实例化
    9.新式类类名后面括号里加object
    10.什么是属性
    类的对象里的每个事物都有属性,属性包括数据属性(变量),函数属性(面向对象的方法),实例只有数据属性,实例能访问类属性
    11.查看类的属性:
    dir(类名)
    12.函数面向对象

    13.类的面向对象

    14.类的数据增删改查

    print(school.conent)#查看
    school.conent='英国'#
    print(school.conent)
    school.dang='中国' #增加
    print(school.dang)
    print(q.dang)
    del school.dang #删除
    print(school.dang)

    15.类的函数属性的增删改

    def eat_food(self,name): #增加函数
    print('%s正在招生'%self.name,name)
    school.ss=eat_food
    print(q.ss('cui'))
    def strip(slef): #改函数
    print('%s学校的运动很键康'%slef.name)
    school.ss=strip
    print(q.ss())
    del strip #删除函数
    print(q.ss())

    16.类的实例的增删改

    q.ade=12 #增加实例属性
    print(q.ade)
    q.ade=10 #修改
    print(q.ade)
    del q.ade #删除
    print(q.ade)

    17.静态属性
    把函数属性变成数据属性

    1.类方法@classmethod 函数名(cls) :可以访问函数属性和数据属性,不可以访问实例
    2.静态方法@staticmethod 函数名():不能访问类的属性页不能访问函数属性
    3.静态属性@property 函数名(self):既可以访问属性也可以访问类的

    4.组合:类和类没有共同特点,只有关联用的组合

    18.类的特点:继承、封装、多态
    (1)继承:子类继承父类的所有属性,如果子类有的话就不会继承父类,分为单继承和多继承。
    (2)什么时候永继承:当类与类之间有相同的功能,可以提取两个类共同的功能放上面做基类。
    (3)继承的两种含义:第一种,继承积累的方法(减少代码重用)
                第二种,接口继承,声明子类兼容基类,,就是父类规定好了方法,子类必须继承父类的方法,要用import abc

    (4)继承顺序:从子类往左向上层继承,到最后一层结束,从子类向右上层继续执行。python3:新式类,python经典类
    (5)在子类中调用父类方法

     19.多态:是指了对象如何通过共同的属性和动作操作和访问。

      python本身就是多态,多态就是运行是的绑定状态

      多态是怎样来的?不同的方法调用相同的方法

    20.封装:有两种
      1.类就是本身就是麻袋
      2.类中定制私有的,只能在类的内部使用,不能在外部使用

    21.反射:指程序可以访问、检测和修改它本身状态或是一种行为的一种能力。

    • getattr 获取指定字符串名称的对象属性
    • setattr 为对象设置一个对象
    • hasattr 判断对象是否有对应的对象(字符串)
    • delattr 删除指定属性
    class ace(object):
        def __init__(self,name,age):
            self.name=name
            self.age=age
        def dispaly(self):
            print(self.name)
    p=ace('cui',20)
    def abe(self):
        print(self.name)
    print(hasattr(p,"dispaly"))#判断是否有这个方法
    print(hasattr(p,"name"))    #判断是否有这变量
    n=getattr(p,'name')
    print(n)                    #查取变量内存地址
    print(getattr(p,'dispaly')) #查取函数的内存地址
    #print(setattr(p,'dispaly',abe))
    setattr(p,'dispaly',abe)#添加函数到对象中去
    p.dispaly(p)
                            #delattr 删除对象的变量



  • 相关阅读:
    SQL Server 判断各种对象是否存在和sysobjects的关系
    SQL Server 通过“with as”方法查询树型结构
    js Iframe与父级页面通信及IE9-兼容性
    SQL Server Update 链接修改和when的应用
    C# 使用表达式树获取特性的值
    .Net Core 防止跨站点请求伪造
    SQL Server 待定
    C# Http请求
    C# Linq 笛卡尔积
    SQL Server 存储过程、函数、触发器的定义
  • 原文地址:https://www.cnblogs.com/cui00/p/12381981.html
Copyright © 2020-2023  润新知