随笔分类 - 面向对象
摘要:绝对导入模板 glance/ ├── __init__.py from glance import api from glance import cmd from glance import db ├── api │ ├── __init__.py from glance.api import po
阅读全文
摘要:一些内置的魔术方法 _call_ : 对象() 调用这个类中的__call__方法 class A: def __call__(self, *args, **kwargs): print('_________') obj = A() print(callable(obj)) obj() A()()
阅读全文
摘要:两个装饰函数 classmethod 被装饰的方法会成为一个静态方法 class Goods: __discount = 0.8 def __init__(self): self.__price = 5 self.price = self.__price * self.__discount @cla
阅读全文
摘要:反射 用字符串数据类型的名字 来操作这个名字对应的函数\实例变量\绑定方法\各种方法 1.反射对象的 实例变量 2.反射类的 静态变量/绑定方法/其他方法 3.模块中的 所有变量 被导入的模块 当前执行的py文件 - 脚本 class Person: def __init__(self,name ,
阅读全文
摘要:面向对象之-封装 封装 :就是把属性或者方法装起来 广义 :把属性和方法装起来,外面不能直接调用了,要通过类的名字来调用 狭义 :把属性和方法藏起来,外面不能调用,只能在内部偷偷调用 class User: def __init__(self,name,passwd): self.usr = nam
阅读全文
摘要:property装饰 from math import pi class Circle: def __init__(self,r): self.r = r @property # 把一个方法伪装成一个属性,在调用这个方法的时候不需要加()就可以直接得到返回值 def area(self): retu
阅读全文
摘要:super方法 super是按照mro顺序来寻找当前类的下一个类 在py3中不需要传参数,自动就帮我们寻找当前类的mro顺序的下一个类中的同名方法 在py2中的新式类中,需要我们主动传递参数super(子类的名字,子类的对象).函数名() 这样才能够帮我们调用到这个子类的mro顺序的下一个类中的方法
阅读全文
摘要:多继承 # 背诵 # 只要继承object类就是新式类 # 不继承object类的都是经典类 # python3 所有的类都继承object类,都是新式类 # 在py2中 不继承object的类都是经典类 # 继承object类的就是新式类了 # 经典类 :在py3中不存在,在py2中不主动继承ob
阅读全文
摘要:面向对象三大特性之——继承 继承 -- 需要解决代码的重复 继承语法: class A: pass class B(A): pass B继承A,A是父类,B是子类 A是父类(基类 超类) B是子类(派生类) 子类可以使用父类中的 : 方法 静态变量 class Animal: def __init_
阅读全文
摘要:类的组合 组合:一个类的对象是另外一个类对象的属性 # 学生类 # 姓名 性别 年龄 学号 班级 手机号 class Student: def __init__(self,name,sex,age,number,clas,phone): self.name = name self.sex = sex
阅读全文
摘要:类的成员和命名空间 class A: Country = '中国' # 静态变量/静态属性 存储在类的命名空间里的 def __init__(self,name,age): # 绑定方法 存储在类的命名空间里的 self.name = name self.age = age def func1(se
阅读全文
摘要:面向对象初识 先来定义模子,用来描述一类事物 具有相同的属性和动作 class Person: # 类名 def __init__(self,name,sex,job,hp,weapon,ad): # 必须叫__init__这个名字,不能改变的,所有的在一个具体的人物出现之后拥有的属性 self.n
阅读全文