类属性

单例

我与影子孤独终老i 提交于 2020-01-27 13:51:20
01. 单例设计模式 设计模式 设计模式 是 前人工作的总结和提炼 ,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案 使用 设计模式 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性 单例设计模式 目的 —— 让 类 创建的对象,在系统中 只有 唯一的一个实例 每一次执行 类名() 返回的对象, 内存地址是相同的 单例设计模式的应用场景 音乐播放 对象 回收站 对象 打印机 对象 …… 02. __new__ 方法 使用 类名() 创建对象时, Python 的解释器 首先 会 调用 __new__ 方法为对象 分配空间 __new__ 是一个 由 object 基类提供的 内置的静态方法 ,主要作用有两个: 1) 在内存中为对象 分配空间 2) 返回 对象的引用 Python 的解释器获得对象的 引用 后,将引用作为 第一个参数 ,传递给 __init__ 方法 重写 __new__ 方法 的代码非常固定! 重写 __new__ 方法 一定要 return super().__new__(cls) 否则 Python 的解释器 得不到 分配了空间的 对象引用 , 就不会调用对象的初始化方法 注意: __new__ 是一个静态方法,在调用时需要 主动传递 cls 参数  示例代码 class MusicPlayer(object): def _

Python-day11 面向对象复习总结

泪湿孤枕 提交于 2020-01-26 03:00:58
面向对象的概念 什么是面向对象: 思想, 完成任何功能, 都找一个对象帮你完成, 关注结果 有哪些对象? 类, 函数, 模块, 包 面向对象三个特征: 封装,继承,多态 面向对象的语法 类 类 使用于 描述 具有相同属性和方法的 一类事务 语法: class 类名 ( object ) : 类属性 = 值 __类私有属性 = 值 def __init__ ( self , 参数 1 , 参数 2 . . . ) : # 初始化方法 self . 属性 1 = 参数 1 self . 属性 2 = 参数 2 # 实例方法 def 方法名 ( self , 参数 ) : pass # 类方法 @ classmethod def 方法名 ( cls , 参数 ) : pass # 静态方法 @ staticmethod def 方法名 ( 参数 ) : # 即不是实例上的属性也不使用类属性 pass #魔术方法 def __new__ ( cls , * args , ** kwargs ) : return super ( ) . __new__ ( cls ) def __str__ ( self ) : return "对象的描述信息" def __del__ ( self ) : # 对象销毁执行 # 用于处理清理工作(收尾工作) 对象 # 创建对象 对象 = 类名 ( 参数 )

PHP 成员重载与实战

人盡茶涼 提交于 2020-01-25 18:18:49
一、静态成员 应用场景: 1、如果一个对象,我们仅仅只用一次,还有必要创建对象吗, 直接将类看成对象,岂不是更方便 2、如果多个对象之间, 需要共享一些属性和方法, 而他们必须通过一个个独立对象调用的,无法共享,怎么办? 这时候使用静态成员就能解决。 成员分为:成员可分为类成员和实例成员,成员又包含属性和方法 实例属性定义 : public $product; 初始化用构造函数 实例方法定义 : public function getInfo1(){} 静态属性定义 : public static $price; 可以在构造函数中进行初始化,但不建议,最好是定义时进行初始化。访问: 用类直接访问,例如双冒号[范围解析符] echo Demo::$price; 静态方法定义 : public static function getInfo2(){} 二、常量 类常量定义: const 常量名=常量值; 普通常量定义: define('常量名','常量值'); 变量 和 普通常量 的区别: 变量是有作用域限制,通过 _GLOBAL数组 输出;普通常量是是全局的,无作用域的限制但受命名空间限制,可以直接输出。 类常量 和 普通常量 的区别: 声明的方式不同:类常量用const;普通常量可以const也可以define,一般用define,因为define灵活点允许值是一个表达式(abc

CSS属性速查表

孤者浪人 提交于 2020-01-25 08:23:38
本文将按照布局类属性、盒模型属性、文本类属性、修饰类属性这四个分类,对CSS常用属性进行重新排列,并最终设置为一份stylelintrc文件 布局类 1、定位 position z-index top bottom left right 2、浮动 float clear 3、多列布局 columns columns-width columns-count column-rule column-fill column-span column-gap 专门建立的学习Q-q-u-n: 731771211,分享学习方法和需要注意的小细节,不停更新最新的教程和学习技巧 (从零基础开始到前端项目实战教程,学习工具,全栈开发学习路线以及规划) 4、栅格布局 // 显示网格 display grid grid-template-rows grid-template-columns grid-column-gap grid-row-gap grid-gap // 网格线 grid-row-start grid-row-end grid-row grid-column-start grid-column-end grid-column grid-area // 隐式网格 grid-auto-rows grid-auto-columns grid-auto-flow grid-template-rows

Python:面向对象基础

放肆的年华 提交于 2020-01-23 23:34:11
基本理论 什么是对象 万物皆对象 对象是具体的事物 拥有属性、行为 把许多零散的东西,封装成为一个整体 Python中一切东西都是对象,Python是一门特别彻底的面向对象编程语言(OOP) 其他编程语言很多还分基本类型和对象类型,而在python中,只有对象类型 面向过程 & 面向对象 两者都是解决问题的思路、思想,面向对象本身是面向过程的封装 面向过程:在解决问题的时候,关注的是解决问题的每一个过程(步骤) 按照步骤划分 摆一个任务,分解成具体的每一个步骤 面向对象:在解决问题的时候,关注的是解决问题所需要的对象 按照功能对象进行划分 找到对象,确定对象属性和行为 如何从面向过程到面向对象: 列举任务步骤 分离步骤中的对象和功能代码块 将功能代码划分到具体对象中 根据对象以及具体的行为,抽取出类 类 什么是类 类是某一类具体对象特征的抽象 类的作用 根据抽象的类,生产具体的对象 类的组成 名称、属性、方法 注意: 属性和方法,都是抽象的概念 在产生对象之后,对象才拥有具体的属性值,和方法实现 对象和类的关系 对象 -- 抽象 -- 类 类 -- 实例化 -- 对象 定义类 经典类的定义: class 类名: ...... 创建一个对象 obj = 类名() 创建对象时的底层运作: 首先会在内存中开辟一段空间(类的定义也会占用内存) 通过类变量获取类名: xxx.__name__

Python笔记:面向对象

拥有回忆 提交于 2020-01-23 00:22:35
基本理论 什么是对象 万物皆对象 对象是具体的事物 拥有属性、行为 把许多零散的东西,封装成为一个整体 Python中一切东西都是对象,Python是一门特别彻底的面向对象编程语言(OOP) 其他编程语言很多还分基本类型和对象类型,而在python中,只有对象类型 面向过程 & 面向对象 两者都是解决问题的思路、思想,面向对象本身是面向过程的封装 面向过程:在解决问题的时候,关注的是解决问题的每一个过程(步骤) 按照步骤划分 摆一个任务,分解成具体的每一个步骤 面向对象:在解决问题的时候,关注的是解决问题所需要的对象 按照功能对象进行划分 找到对象,确定对象属性和行为 如何从面向过程到面向对象: 列举任务步骤 分离步骤中的对象和功能代码块 将功能代码划分到具体对象中 根据对象以及具体的行为,抽取出类 类 什么是类 类是某一类具体对象特征的抽象 类的作用 根据抽象的类,生产具体的对象 类的组成 名称、属性、方法 注意: 属性和方法,都是抽象的概念 在产生对象之后,对象才拥有具体的属性值,和方法实现 对象和类的关系 对象 -- 抽象 -- 类 类 -- 实例化 -- 对象 定义类 经典类的定义: class 类名: ...... 创建一个对象 obj = 类名() 创建对象时的底层运作: 首先会在内存中开辟一段空间(类的定义也会占用内存) 通过类变量获取类名: xxx.__name__

Java基础——多态

て烟熏妆下的殇ゞ 提交于 2020-01-14 23:54:08
Java基础——多态 什么是多态? 从字面的意思上理解,多态就是多种形态。 同一个动作作用于不同的对象产生不同的行为 多态性指的是什么?多态性,可以理解为一个事物的多种表现形态。在Java中有两种体现: 方法的重载(overload)和重写(overwrite) 子类对象的多态性(可以直接应用在抽象类和接口上) 对象的多态性是什么?:一个对象多种形态;在Java中,子类的对象可以替代父类的对象使用 我们在之后的学习中会经常与多态打交道,比如:IO、集合、JDBC等等。 多态性有两种: 1.编译时多态性 对于多个同名方法,如果在编译时能够确定执行同名方法中的哪一个,则称为编译时多态性。 2.运行时多态性 如果在编译时不能确定,只能在运行时才能确定执行多个同名方法中的哪一个,则称为运行时多态性。 方法重写和重载的区别: 方法重写的规则 在继承关系的子类中 重写的方法名、参数、返回值类型必须与父类相同 私有方法不能继承因而也无法重写 对象转型分为: 1.向上转型 2.向下转型 instanceof运算符: 该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false 在强制类型转换之前通过instanceof运算符检查对象的真实类型,可以避免类型转换异常,从而提高代码健壮性 final关键字: final关键字:代表最终的意思, 可以修饰什么? 1.修饰类 2

Python类属性和类方法

倾然丶 夕夏残阳落幕 提交于 2020-01-13 00:29:09
01. 类的结构 1.1 术语 —— 实例 使用面相对象开发, 第 1 步 是设计 类 使用 类名() 创建对象, 创建对象 的动作有两步: 1) 在内存中为对象 分配空间 2) 调用初始化方法 __init__ 为 对象初始化 对象创建后, 内存 中就有了一个对象的 实实在在 的存在 —— 实例 因此,通常也会把: 创建出来的 对象 叫做 类 的 实例 创建对象的 动作 叫做 实例化 对象的属性 叫做 实例属性 对象调用的方法 叫做 实例方法 在程序执行时: 对象各自拥有自己的 实例属性 调用对象方法,可以通过 self. 访问自己的属性 调用自己的方法 结论 每一个对象 都有自己 独立的内存空间 , 保存各自不同的属性 多个对象的方法 , 在内存中只有一份 ,在调用方法时, 需要把对象的引用 传递到方法内部 1.2 类是一个特殊的对象 Python 中 一切皆对象 : class AAA: 定义的类属于 类对象 obj1 = AAA() 属于 实例对象 在程序运行时, 类 同样 会被加载到内存 在 Python 中, 类 是一个特殊的对象 —— 类对象 在程序运行时, 类对象 在内存中 只有一份 ,使用 一个类 可以创建出 很多个对象实例 除了封装 实例 的 属性 和 方法 外, 类对象 还可以拥有自己的 属性 和 方法 类属性 类方法 通过 类名. 的方式可以 访问类的属性

Python单例

ε祈祈猫儿з 提交于 2020-01-13 00:27:41
01. 单例设计模式 设计模式 设计模式 是 前人工作的总结和提炼 ,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案 使用 设计模式 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性 单例设计模式 目的 —— 让 类 创建的对象,在系统中 只有 唯一的一个实例 每一次执行 类名() 返回的对象, 内存地址是相同的 单例设计模式的应用场景 音乐播放 对象 回收站 对象 打印机 对象 …… 02. __new__ 方法 使用 类名() 创建对象时, Python 的解释器 首先 会 调用 __new__ 方法为对象 分配空间 __new__ 是一个 由 object 基类提供的 内置的静态方法 ,主要作用有两个: 1) 在内存中为对象 分配空间 2) 返回 对象的引用 Python 的解释器获得对象的 引用 后,将引用作为 第一个参数 ,传递给 __init__ 方法 重写 __new__ 方法 的代码非常固定! 重写 __new__ 方法 一定要 return super().__new__(cls) 否则 Python 的解释器 得不到 分配了空间的 对象引用 , 就不会调用对象的初始化方法 注意: __new__ 是一个静态方法,在调用时需要 主动传递 cls 参数 示例代码 class MusicPlayer(object): def __new

py特性随记

泄露秘密 提交于 2020-01-11 05:33:31
一、Python的函数传参 python所有的变量都可以看为内存中对象的‘引用’, 可变对象:list(列表),dict(字典),字典中的key值是不可更改的数据类型,而value是可更改的。 不可变对象:tuple(元祖),string,number(数字) 当函数中对一个不可变对象赋值时 并不会发生改变。 a = 1 print('a:{}'.format(id(a))) def fun(a): a = 2 print('fun_a{}'.format(id(a))) fun(a) print('a:{}'.format(id(a))) print(a) 而当引用的为可变对象时,对它的操作相当于定位了它的指针 其值会发生改变 v = [] def func(v): v.append('1') func(v) print(v) 总结当一个引用传递给函数的时候,函数会复制一份引用,当值为不可变引用时,不会发生变化, 除非在函数内部重新定义一个相同名称的变量并return在函数执行的时候,其值才会改变。 二、普通方法,实列方法、类方法、静态方法 普通方法在python环境中,独立于类或者对象的函数,可以直接导入。 实例方法,使用之前先通过类实例化一个对象,然后在通过对象调用实例方法。与c++类似。实例方法的第一个参数默认传入一个self,这个self会与实例绑定 类方法