• 类与对象 Lucky


    类与对象

      python类的语法 关键字class 具有某一类共同属性和特性的事物

      class 类名(): 这里加不加括号都可以

        xxxx

      类名的规范:数字字母下划线组成,不能以数字开头,首字母大写,驼峰命名,见名知意

      类属性:放在类里面的变量值

      类方法:放在类里面的函数

      实例/对象:具体的一个例子,类名()

      实例具有类里面的所有属性和方法的使用权限

      调用属性方法:实例.属性名

      调用方法/函数名:实例.方法名() 实例.函数名() 

      self:固定的占坑符号,类里面的实例方法必须带self这个参数,self代表实例本身

      类方法(3种)

        实例方法:这个方法只能实例来调用

        class Teacher:

          def cooking(self):

            print('我会做饭')

        t=Teacher() 实例 隐式的传递

        t.cooking() 实例化调用属性和实例方法  可以这么写

        Teacher.coding() 不可以这么写,会报错,只能实例来调用

        Teacher.coding(t) 显示的传递实例也可以 不建议使用

        类方法

        class Teacher:

          @classmethod 类方法

          def swimming(cls):

            print('我会游泳')

        Teacher.swimming() 可以这么写

        t=Teacher()

        t.swimming() 可以这么写

        静态方法:普通方法

        class Teacher:

          @staticmethod 静态方法

          def sing(cls):

            print('我会唱歌')

        Teacher.sing() 可以这么写

        t=Teacher()

        t.sing() 可以这么写

      类里面的属性和函数只能实例去调用

        self.name

        self.coding()

      不同点:静态方法,类方法不可以调用类里面的属性值,如果你要参数,只能自己传递

      什么时候去定义为静态和类方法?

      当你的某个函数与其他的类函数,类属性没有关系就可以定义为静态和类方法 ,这样方便使用,不用去创建实例去调用,直接类.函数名就可以调用

      初始化函数

      class Teacher:

        def __init__(self,参数1,参数2,参数3): 一般不传动态参数和关键字参数,用位置参数或默认参数

          pass 没有return返回值

      t1 = Teacher(1,2,3)

      什么时候用初始化函数?想用就用

        如果某个属性值是多个函数共用的 就可以用初始化函数

        初始化里面的初始化操作,可以带参数也可以不带参数

        跟普通函数一样可以带默认参数

        初始化函数里面可以有赋值好了的属性值

        每次创造一个实例,需要传递跟初始化函数参数个数一致的值

        每个实例都自动调用初始化函数,需要传递对应的参数

        初始化参数的写法要注意怎么把参数赋值给self.参数名,参数名字不一定要一致,但是赋值要正确

        初始化函数无返回值

      继承

        继承的类,是否要用到初始化函数,需要看父类里面是不是有初始化函数

        父类有的,继承后,子类都可以使用

        父类有,子类也有重名的函数,子类的实例优先调用自己的函数,叫重写

        想在子类的函数里面调用父类的一个函数,直接实例调用 self.xx()

        父类没有,子类有的函数,叫拓展

        多继承,继承多个父类

        具有两个父类的属性和方法,如果两个父类具有同名方法的时候 就近原则

      超继承

        重写父类里面的方法,但是又想继承父类方法里面的所有代码可以使用超继承

        class Parent:

          def test(self):

            print('父类代码')

        class Sub(Parent):

          def test(self):

            super(Sub,self).test()

            print('子类代码')

        Sub().test()   

        

  • 相关阅读:
    微博粉丝服务---“公众号”开发
    springboot --- 之SSM框架整合
    Android 接收短信
    数字币开发相关
    boot camp要求独立的fat分区
    u盘安装 osx 出现 “不能验证”
    微软驱动签名
    centos7 安装 isign
    用windbg查看dmp文件,定位bug位置
    H5移动端,ios从后台返回到app,页面会白一下
  • 原文地址:https://www.cnblogs.com/continuous-luck/p/16426334.html
Copyright © 2020-2023  润新知