随笔分类 -  Python

1 2 3 4 下一页

(一)Python入门-6面向对象编程:12设计模式之工厂模式-单例模式
摘要:一:工厂模式实现 设计模式是面向对象语言特有的内容,是我们在面临某一类问题时候固定的做法,设计 模式有很多种,比较流行的是:GOF(Goup Of Four)23 种设计模式。 工厂模式实现了创建者和调用者的分离,使用专门的工厂类将选择实现类、创建对象进 行统一的管理和控制。 【操作】 运行结果: 阅读全文

posted @ 2019-05-11 23:38 JACK#zhang 阅读(340) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:12组合
摘要:组合: “is-a”关系,我们可以使用“继承”。从而实现子类拥有的父类的方法和属性。“is-a” 关系指的是类似这样的关系:狗是动物,dog is animal。狗类就应该继承动物类。 “has-a”关系,我们可以使用“组合”,也能实现一个类拥有另一个类的方法和属性。” has-a”关系指的是这样的 阅读全文

posted @ 2019-05-11 23:37 JACK#zhang 阅读(141) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:08多重继承-mro()-super()获得父类的定义
摘要:一:多重继承 Python支持多重继承,一个子类可以有多个“直接父类”。这样,就具备了“多个父类”的特点。但是由于,这样会被“类的整体层次”搞的异常复杂,尽量避免使用。 二:mro() Python支持多继承,如果父类中有相同名字的方法,在子类没有指定父类名时,解释器将 “从左向右”按顺序搜索。 M 阅读全文

posted @ 2019-05-11 23:37 JACK#zhang 阅读(199) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:09多态
摘要:多态: 多态(polymorphism)是指同一个方法调用由于对象不同可能会产生不同的行为。在现实 生活中,我们有很多例子。比如:同样是调用人的休息方法,张三的休息是睡觉,李四的休 息是玩游戏,程序员是敲代码。同样是吃饭的方法,中国人用筷子吃饭,英国人用刀叉吃 饭,印度人用手吃饭。 关于多态要注意以 阅读全文

posted @ 2019-05-11 23:37 JACK#zhang 阅读(188) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:10特殊方法和运算符重载-特殊属性
摘要:一:特殊方法和运算符重载 Python的运算符实际上是通过调用对象的特殊方法实现的。比如: 运行结果: c= 50 d= 50 常见的特殊方法统计如下: 每个运算符实际上都对应了相应的方法,统计如下: 我们可以重写上面的特殊方法,即实现了“运算符的重载”。 【操作】运算符的重载 运行结果: jack 阅读全文

posted @ 2019-05-11 23:37 JACK#zhang 阅读(160) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:11对象的浅拷贝和深拷贝
摘要:对象的浅拷贝和深拷贝: 变量的赋值操作 只是形成两个变量,实际还是指向同一个对象。 浅拷贝 Python拷贝一般都是浅拷贝。拷贝时,对象包含的子对象内容不拷贝。因此,源对象 和拷贝对象会引用同一个子对象。 深拷贝 使用copy模块的 deepcopy 函数,递归拷贝对象中包含的子对象。源对象和拷贝对 阅读全文

posted @ 2019-05-11 23:37 JACK#zhang 阅读(259) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:07面向对象三大特征(封装、继承、多态)-继承
摘要:一:面向对象三大特征介绍 Python是面向对象的语言,也支持面向对象编程的三大特性:继承、封装(隐藏)、多态。 封装(隐藏) 隐藏对象的属性和实现细节,只对外提供必要的方法。相当于将“细节封装起来”,只 对外暴露“相关调用方法”。 通过前面学习的“私有属性、私有方法”的方式,实现“封装”。Pyth 阅读全文

posted @ 2019-05-11 23:37 JACK#zhang 阅读(336) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:06私有属性和私有方法(实现封装)-@property装饰器-get和set方法-总结
摘要:一:私有属性和私有方法(实现封装) Python对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别。关于私有 属性和私有方法,有如下要点: 1. 通常我们约定,两个下划线开头的属性是私有的(private)。其他为公共的(public)。 2. 类内部可以访问私有属性(方法) 3. 类外 阅读全文

posted @ 2019-05-11 23:36 JACK#zhang 阅读(446) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:01面向对象和面向过程区别-对象的进化
摘要:面向对象: 面向对象(Object oriented Programming,OOP)编程的思想主要是针对大型 软件设计而来的。面向对象编程使程序的扩展性更强、可读性更好,使的编程可以像搭 积木一样简单。 面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式 更加接近人的思维,从 阅读全文

posted @ 2019-05-11 23:35 JACK#zhang 阅读(318) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:02类的定义-类和对象的关系-构造函数-实例属性-实例方法
摘要:一:类的定义 如果把对象比作一个“饼干”,类就是制造这个饼干的“模具”。 我们通过类定义数据类型的属性(数据)和方法(行为),也就是说,“类将行为和状态打 包在一起”。 对象是类的具体实体,一般称为“类的实例”。类看做“饼干模具”,对象就是根据这个“模 具”制造出的“饼干”。 从一个类创建对象时,每 阅读全文

posted @ 2019-05-11 23:35 JACK#zhang 阅读(558) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:03类对象-类属性-类方法-静态方法
摘要:一:类对象 前面讲的类定义格式中,“class 类名:”。实际上,当解释器执行class 语句时, 就会创建一个类对象。 【操作】 运行结果: <class 'type'> 2220691901896 <class '__main__.Student'> <__main__.Student obje 阅读全文

posted @ 2019-05-11 23:35 JACK#zhang 阅读(262) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:04__del__方法(析构函数)和垃圾回收机制-__call__方法和可调用对象
摘要:一:__del__方法(析构函数)和垃圾回收机制 __del__方法称为“析构方法”,用于实现对象被销毁时所需的操作。比如:释放对象 占用的资源,例如:打开的文件资源、网络连接等。 Python实现自动的垃圾回收,当对象没有被引用时(引用计数为 0),由垃圾回收器 调用__del__方法。 我们也可 阅读全文

posted @ 2019-05-11 23:35 JACK#zhang 阅读(148) 评论(0) 推荐(0) 编辑

(一)Python入门-6面向对象编程:05方法没有重载-方法的动态性
摘要:一:方法没有重载 在其他语言中,可以定义多个重名的方法,只要保证方法签名唯一即可。方法签名包含 3 个部分:方法名、参数数量、参数类型。 Python中,方法的的参数没有声明类型(调用时确定参数的类型),参数的数量也可以由 可变参数控制。因此,Python中是没有方法的重载的。定义一个方法即可有多种 阅读全文

posted @ 2019-05-11 23:35 JACK#zhang 阅读(160) 评论(0) 推荐(0) 编辑

(一)Python入门-5函数:10nonlocal-global-LEGB规则
摘要:一:nonlocal关键字 nonlocal 用来声明外层的局部变量。 global 用来声明全局变量。 运行结果: inner:b 10 outer:b 20 a: 200 二:LEGB规则 Python在查找“名称”时,是按照LEGB规则查找的: Local-->Enclosed-->Globa 阅读全文

posted @ 2019-05-11 23:34 JACK#zhang 阅读(218) 评论(0) 推荐(0) 编辑

(一)Python入门-5函数:03函数也是对象-内存分析
摘要:函数也是对象,内存底层分析: Python中,“一切都是对象”。实际上,执行def 定义函数后,系统就创建了相应的函数 对象。我们执行如下程序,然后进行解释: 上面代码执行 def 时,系统中会创建函数对象,并通过print_star 这个变量进行引用: 我们执行“c=print_star”后,显然 阅读全文

posted @ 2019-05-11 23:34 JACK#zhang 阅读(250) 评论(0) 推荐(0) 编辑

(一)Python入门-5函数:04变量的作用域-全局变量-局部变量-栈帧内存分析-效率测试
摘要:一:变量的作用域(全局变量和局部变量) 变量起作用的范围称为变量的作用域,不同作用域内同名变量之间互不影响。变量分为:全 局变量、局部变量。 全局变量: 1. 在函数和类定义之外声明的变量。作用域为定义的模块,从定义位置开始直到模块结束。 2. 全局变量降低了函数的通用性和可读性。函数中应尽量避免全 阅读全文

posted @ 2019-05-11 23:34 JACK#zhang 阅读(441) 评论(0) 推荐(0) 编辑

(一)Python入门-5函数:05参数的传递-可变对象-不可变对象-浅拷贝和深拷贝-不可变对象含可变子对象
摘要:一:参数的传递 函数的参数传递本质上就是:从实参到形参的赋值操作。 Python中“一切皆对象”, 所有的赋值操作都是“引用的赋值”。所以,Python中参数的传递都是“引用传递”,不 是“值传递”。具体操作时分为两类: 1. 对“可变对象”进行“写操作”,直接作用于原对象本身。 2. 对“不可变对 阅读全文

posted @ 2019-05-11 23:34 JACK#zhang 阅读(287) 评论(0) 推荐(0) 编辑

(一)Python入门-5函数:06参数类型-位置参数-默认值参数-命名参数-可变参数-强制命名参数
摘要:参数的几种类型: 位置参数: 函数调用时,实参默认按位置顺序传递,需要个数和形参匹配。按位置传递的参数,称为: “位置参数” 默认值参数: 我们可以为某些参数设置默认值,这样这些参数在传递时就是可选的。称为“默认值参数”。 默认值参数放到位置参数后面。 命名参数: 我们也可以按照形参的名称传递参数, 阅读全文

posted @ 2019-05-11 23:34 JACK#zhang 阅读(160) 评论(0) 推荐(0) 编辑

(一)Python入门-5函数:07lambda表达式和匿名函数-eval()函数
摘要:一:lambda表达式和匿名函数 lambda表达式可以用来声明匿名函数。lambda 函数是一种简单的、在同一行中定义函数 的方法。lambda函数实际生成了一个函数对象。 lambda表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数 的返回值。 lambda表达式的基本语 阅读全文

posted @ 2019-05-11 23:34 JACK#zhang 阅读(468) 评论(0) 推荐(0) 编辑

(一)Python入门-5函数:08递归函数
摘要:递归函数: 递归函数指的是:自己调用自己的函数,在函数体内部直接或间接的自己调用自己。递归类 似于大家中学数学学习过的“数学归纳法”。 每个递归函数必须包含两个部分: 1. 终止条件 表示递归什么时候结束。一般用于返回值,不再调用自己。 2. 递归步骤 把第 n步的值和第 n-1步相关联。 递归函数 阅读全文

posted @ 2019-05-11 23:34 JACK#zhang 阅读(109) 评论(0) 推荐(0) 编辑

1 2 3 4 下一页