面向对象
文章平均质量分 68
面向对象思想
骑台风走
python后端开发,如果你看见,一个正在写bug的,头发茂密的调包侠,正是在下
展开
-
python---元类
1. 创建一个基本的类class Foo(object): def __init__(self, name): self.name = name def __new__(cls, *args, **kwargs): data = object.__new__(cls) return data2. 根据类创建对象执行类的new方法,创建对象〔空对象)。【构造方法】 执行类的init方法,初始化对象2.1 问题:类是由谁创建的原创 2022-03-11 22:23:00 · 3217 阅读 · 0 评论 -
python三大器物---装饰器
1. 装饰器def outer(func): def inner(*args, **kwargs): ret = func(*args, **kwargs) return ret return inner@outer # auth = inner() 一旦加上装饰器,那么当前auth已经变成inner了def auth(): passret = auth()2. 语法糖的拆解@装饰器函数重新定义被装饰函数=装饰器原创 2022-03-26 09:15:05 · 3286 阅读 · 0 评论 -
python三大器物---生成器
1. 首先我们来看看什么是个生成器生成器它的本质就是迭代器2. 在python中有以下几种方式来获取生成器通过生成器函数 通过各种推到式来实现生成器2.1 首先,我们先看一个很简单的函数,def func(): print(11) return 22ret = func()print(ret)# 运行结果:11222.2 定义生成器我们只需要修改一个地方就可以把函数变成生成器 就是将函数中的return换成yield就是生成器def func():原创 2022-03-21 00:35:03 · 3154 阅读 · 0 评论 -
python三大器物---迭代器
0. 引子1. 函数名的运用函数名是一个变量, 但它是一个特殊的变量, 与括号配合可以执行函数的变量2. 函数名的内存地址def func(): print("呵呵")print(func)结果: <function func at 0x1101e4ea0>3. 函数名可以赋值给其他变量def func(): print("呵呵") print(func)a = func # 把函数当成一个值赋值给另一个变量a()原创 2022-03-19 01:03:21 · 3187 阅读 · 0 评论 -
面向对象---双下滑线方法
1. 定义:双下方法是特殊方法,他是解释器提供的 由双下划线加方法名加双下划线 __方法名__的具有特殊意义的方法, 双下方法主要是python源码程序员使用的,我们在开发中尽量不要使用双下方法,但是深入研究双下方法,更有益于我们阅读源码。 调用:不同的双下方法有不同的触发方式,就好比盗墓时触发的机关一样,不知不觉就触发了双下方法,例如:__init__2. 常用的2.1 __len__class B: def __len__(self): print(666)原创 2022-03-12 13:05:28 · 3080 阅读 · 0 评论 -
面向对象---isinstace/ issubclass/反射
1. isinstance(a,b)判断a是否是b类(或者b类的派生类)实例化的对象class A: passclass B(A): passclass C(B): passprint(issubclass(B,A))print(issubclass(C,A))2. issubclass(a,b)判断a类是否是b类(或者b的派生类)的派生类from collections import Iterableprint(isinstance([1,2,3],原创 2022-03-20 12:34:36 · 3056 阅读 · 0 评论 -
面向对象---super
1. super是严格按照类的继承顺序执行!!!class A: def f1(self): print('in A f1') def f2(self): print('in A f2')class Foo(A): def f1(self): super().f2() print('in A Foo')obj = Foo()obj.f1()super可以找到下一个类的其他方法2. super()严格按照原创 2022-03-11 14:21:10 · 2859 阅读 · 0 评论 -
面向对象---继承/封装/多肽
1. 继承比较官方的说法就是:继承(英语:inheritance)是面向对象软件技术当中的一个概念。 如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”,而把B称为“A的父类别”也可以称“B是A的超类”。 继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相同的代码。 在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法, 即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类别追加新的属性和方法也是常见的做法。 一般静态的面向对象编程原创 2022-03-18 13:11:32 · 3545 阅读 · 0 评论 -
面向对象初始二---私有共有/魔术方法
1. 类的私有成员介绍1.1 对于每一个类的成员而言都有两种形式:公有成员,在任何地方都能访问 私有成员,只有在类的内部才能方法2 私有成员和公有成员:2.1 静态字段(静态属性)访问限制公有静态字段:类可以访问;类内部可以访问;派生类中可以访问 私有静态字段:仅类内部可以访问;2.2.1 公有静态属性(静态字段)class C: name = "公有静态字段" def func(self): print C.nameclass D(C):原创 2022-03-17 11:53:37 · 3090 阅读 · 0 评论 -
面向对象初识一
1. 面向对象编程:是一类相似功能函数的集合,使你的代码更清晰化,更合理化。 面向对象的程序设计的核心是对象2. 那什么是类?什么又是对象?类:就是具有相同属性和功能的一类事物 对象:就是类的具体表现形式,是一个容器3.类的结构class People: country = '中国' def __init__(self, name, age): self.name = name self.age = age self..原创 2022-03-16 08:31:04 · 3367 阅读 · 0 评论