Python基础进阶(二)
Python基础
__淡墨青衫__
这个作者很懒,什么都没留下…
展开
-
Python面向对象和面向过程的区别以及设计和执行者的思维
面向对象编程: 面向对象编程的思想主要是针对大型软件设计而来的,面向对象编程使程序的扩展性更强,可读性更好,使得编程可以像搭积木一样简单。 面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式更加接近人的思维,从而大大提高了编程的效率。 Python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向对象的基本功能,例如:继承,多态,封装等。 Python中,一切皆对象,在 Python基础(一)介绍的数据类型、...原创 2020-07-22 21:21:50 · 248 阅读 · 0 评论 -
Python构造函数__init__()
类是抽象的,也称为“对象模板”,我们需要通过类这个模板,创建类的实例对象,才能使用类定义的功能。Python对象基本包含三个部分:id(identity 识别码),type(对象类型),value(对象的值)现在,更进一步的理解,一个Python对象包含如下部分id(identity 识别码) type(对象类型) value(对象的值) 1.属性(attribute) 2.方法(method)创建对象,需要定义构造函数__init__()方法,构造方法用于执行...原创 2020-07-24 15:42:40 · 790 阅读 · 0 评论 -
Python实例属性和实例方法
实例属性实例属性是从属于实例对象的属性,也称为“实例变量”,使用有如下几个要点:1.实例属性一般在__init__()方法中通过如下代码定义: self.实例属性名 = 初始值2.在本类的其他实例方法中,也是通过self进行访问: self.实例属性名3.创建实例对象后,通过实例对象访问: obj01=类名() #创建对象,调用__init__()初始化属性 obj...原创 2020-08-24 16:40:59 · 722 阅读 · 0 评论 -
python的类属性和类方法以及静态方法的含义
类属性:类属性是从属于“类对象”的属性,也称为“类变量”,由于,类属性从属于类对象,可以被所有实例对象共享。类属性的定义方式:class stu:#类名 类变量名=初始值在类中或者类的外面,可以通过:“类名.类变量名“来读写。类方法:类方法是从属于“类对象”的方法,类方法通过装饰器@classmethod来定义的,格式如下:@classmethoddef 类方法名(cls,[,形参列表]): 函数体要点如下:@classmethod必须位于方法上面一原创 2020-09-07 22:45:30 · 411 阅读 · 0 评论 -
python的__del__方法和垃圾回收机制
__del__方法(析构函数)和垃圾回收机制 __del__方法称为“析构方法”,用于实现对象被销毁时所需的操作,比如:释放对象占用的资源,例如:打开的文件资源、网络连接等。 python实现自动的垃圾回收机制。当对像没有被引用时(引用计数为0),由垃圾回收器调用__del__方法。 也可以通过del语句删除对象,从而保证调用__del__方法。 系统会自动提供__del__方法,一般不需要自定义析构方法。例子:class Perso...原创 2020-09-08 11:21:01 · 462 阅读 · 0 评论 -
python方法没有重载以及方法的动态性
__call__方法和可调用对象 定义了__call__方法的对象,称为“可调用对象”,即该对象可以像函数一样被调用方法没有重载 在其他语言中,可以定义多个重名的方法,只要保证方法签名唯一即可,方法签名包含3个部分:方法名,参数数量,参数类型。 python中,方法的参数没有类型(调用时确定参数的类型),参数的数量也可以由可变参数控制,因此,python中没有方法的重载的,定义一个方法即可由多种调用方式,相当于实现了其他语言中的方法重载。 ...原创 2020-09-25 16:14:40 · 131 阅读 · 0 评论 -
python 关于私有属性和私有方法
私有属性和私有方法 python对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别,关于私有属性和私有方法,有如下要点: 1.通常我们约定,两个下划线开头的属性是私有的(private),其他为公共的(public)。 2.类内部可以访问私有属性(方法) 3.类外部不能直接访问私有属性(方法) 4.类外部可以通过“_类名__私有属性(方法)名“访问私有属性(方法)【注】:方法本质上也是属性!只不过是可以通过()执行而已,所...原创 2020-09-25 16:38:44 · 267 阅读 · 0 评论 -
python查看类的继承层次结构以及object根类
通过类的方法mro()或者类的属性__mro__可以输出这个类的继承层次结构【操作】查看类的继承层次结构class a(): passclass b(a): passclass c(b): passif __name__ == '__main__': print(c.mro())执行反回:[<class '__main__.c'>, <class '__main__.b'>, <class '__main__.a'&原创 2020-10-09 16:38:44 · 1582 阅读 · 1 评论 -
python面向对象三大特征(封装,继承,多态)
python是面向对象的语言,也支持面向对象编程的三大特性:继承、封装、多态。*封装(隐藏) 隐藏对象的属性和实现细节,只对外提供必要的方法,相当于将“细节封装起来”,只对外暴露“相关调用方法”。 通过“私有属性,私有方法“的方式,实现”封装”,python追求简洁的语法,没有严格的语法级别的“访问控制符”。*继承 继承可以让子类具有父类的特性,提高代码的重用性。 从设计上是一种增量进化,原有父类设计不变的情况下,可以增加新...原创 2020-10-10 11:20:42 · 238 阅读 · 1 评论 -
python特殊方法和运算符重载(番外--重载)
python的运算符实际上是通过对象的特殊方法实现的【例如】a=20b=30c=a+bd=a.__add__(b)print("c=",c)print("d=",d)执行返回 c= 50 d= 50常见的特殊方法统计说明方法 说明 例子 __init__ 构造方法 对象创建:p=Person() __del__ 析构方法 对象回收 __repr__,__str__ 打印,转换 print(a...原创 2020-10-13 11:04:49 · 258 阅读 · 0 评论 -
Python特殊属性(番外--查看类对象属性的方法)
特殊属性Python对象中包含了很多下划线开始和结束的属性,这些都是特殊属性,有特殊用法,这里列出常见的特殊属性: 特殊方法 含义 obj代表是普通对象 obj.__dict__ 对象的属性字典 obj.__class__ 对象所属的类 class对象方法 class.__bases__ 类的基类元组(多继承) class.__base__ 类的基类 class.__mro__ 类层次结构 class.__subclas.原创 2020-10-13 17:21:18 · 168 阅读 · 0 评论 -
Python对象的浅拷贝和深拷贝(番外---对象拷贝)
对象的浅拷贝和深拷贝变量的赋值操作 只是形成两个变量,实际还是指向同一个对象浅拷贝 Python拷贝一般都是浅拷贝,拷贝时,对象包含的子对象内容不拷贝,因此,源对象和拷贝对象会引用同一个子对象。深拷贝 使用copy模块的deepcopy函数,递归拷贝对象中包含的字对象,源对象和拷贝对象所有的子对象也不同。【例子】# 测试对象的浅拷贝、深拷贝import copyclass MobilePho...原创 2020-10-14 16:41:14 · 211 阅读 · 3 评论 -
Python关于另一种类继承是组合(番外----组合)
组合 “is-a”关系我们可以使用“继承”,从而实现子类拥有父类的方法和属性。“is-a”关系指的是类似这样的关系:狗是动物。狗类就应该继承动物类 “has-a”关系,可以使用“组合”也能实现一个类拥有另一个类的方法和属性。“has-a”关系指的是这样的关系:手机拥有cpu。【例子】# 继承class A1: def say_a1(self): print('这是大写A')class B1(A1): passb...原创 2020-10-14 18:38:30 · 90 阅读 · 0 评论 -
Python的设计模型-----工厂模式和单例模式
设计模式是面向对象语言特有的内容,使我们在面临某一类问题时固定的做法,设计模式有很多种,比较流行的是:GOF(Goup Of Four)23种设计模式。我们没有必要全学,学习几个常用的的即可 我们最常用的模式:工厂模式和单例模式(只要在复杂的场景在会使用)工厂模式 工厂模式实现了创建者和调用者的分离,使用专门的工厂类将选择实现类、创建对象进行统一的管理和控制。 【例子】# 工厂模式'''一般情况下我们要创建一个工厂类(创造我们想创造...原创 2020-10-16 16:19:35 · 595 阅读 · 2 评论