Python 深入理解类和对象(已完结)
上海_彭彭
这个作者很懒,什么都没留下…
展开
-
python3: 类,实例和type 的关系, 类的继承关系
1.类,实例,type 的关系类一共有两种 , 第一是内置的 比如 str, int, list 第二种就是 自定义的, 比如 Class Student: pass比如 : int 1 通过 type(1) 可以得到 1 就是 int 类 的一个实例 对象, 同样 通过 type(int) 可以得出, int 是type 类的实例对象 type, 通过type(object)同...原创 2018-10-18 00:23:02 · 865 阅读 · 0 评论 -
python3:Super 你真的理解了吗?
1.如果重写了父类的方法,还有没有必要使用父类的方法。看下边的例子简单介绍调用父类的方法。class A: def said(self): print("A")class B(A): def said(self): print("B") super().said()b=B()b.said()#原创 2018-10-21 12:01:02 · 283 阅读 · 0 评论 -
python3:的自省机制
自省的意思,自己反省自己,对自己进行刨析。例如论语中的名言:”吾日三省吾身”,没有经过自省的语言不是好语言。编程中,自省的能力:检查某些事物以确定它是什么,它知道什么以及它能做什么。1.联机帮助(help)当我们对某个关键字和模块不是很熟悉,这个时候就可以向python 救命(help),首先输入 help(),进行help 命令行 ,继续输入想要查的内容。>>> hel...原创 2018-10-21 00:15:45 · 837 阅读 · 0 评论 -
python3:数据封装私有属性和方法
1.私有属性的封装私有属性的含义是外部不能直接用 实例名.私有属性名进行访问,子类同样也是一样不能, 这样就是对数据进行封装。只能有公共的方法里调用私有属性。 请看下这个例子``class Date: def __init__(self,birthday): self.__birthday=birthdaydate=Date(1960)print(date.__...原创 2018-10-20 21:56:00 · 581 阅读 · 0 评论 -
python3:类方法,静态方法和实例方法以及应用场景
1.实例方法在编程里经常用的是实例方法,直接用实例去调用, 只要 方法里有self 就可以断定是实例方法,如 def method_name(self,*argc). 先看下边代码如下:class Date: def __init__(self,year,month,day): self.year=year self.month=month ...原创 2018-10-20 13:29:52 · 7860 阅读 · 5 评论 -
python3:contextlib简化上下文管理器
contextlib 实现效果和with 语句一样,他有他独特的语法来实现 with 的enter 和exit方法. 请看下边的例子.import contextlib@contextlib.contextmanager # contextlib装饰器 可以将函数变成 一个上下文管理器def file_open(file_name): print("file name") ...原创 2018-10-22 11:28:58 · 357 阅读 · 0 评论 -
python3:类变量和实例变量的区别
类变量又叫全局变量,是属于类的特性,实例先找实例化变量,然后再去找类变量. 但是 实例变量只是属于 实例化的变量, 但是 类变量 也可以用实例去调用. 如果类变量有多重继承关系, 就需要按照指定的路线进行查找. 先看看代码理解下吧class A: aa=10 def __init__(self,a,b): self.a=a self.b=ba=...原创 2018-10-19 13:48:36 · 5065 阅读 · 3 评论 -
python3:少用type 多用isinstance
type() 和 isinstance 都可以做类型的比较,但他们是有区别的,知道原理就能在应用场景中灵活应用。请看下这个例子 .class A: passclass B(A): passb=B()print(type(b) is A)print(isinstance(b,A))#打印的结果如下: FalseTrue为什么两种方法得出不同的结果?解释如...原创 2018-10-18 23:51:27 · 328 阅读 · 0 评论 -
python3:抽象基类(abc模块)
抽象基类的意思,是定义一个虚拟的类, 不能直接调用方法, 只是一个接口, 相当于一个模板, 供他的子类使用,子类一定要实现他的方法。否则就会抛异常。疑问: 已经有了鸭子类型 和多态 ,为什么还要用这个呢?答: 为了 解决两个事情1. 调用抽象类,检查子类对象类型, 实现返回true***请看以下代码:from collections.abc import Sizedclass P...原创 2018-10-18 22:57:22 · 2141 阅读 · 1 评论 -
Python3:鸭子类型和多态
先看看代码,稍后我再分析class Person: def run(self): print("Person can run")class Animal: def run(self): print("Animal can run")class Robot: def run(self): print(&a原创 2018-10-18 11:40:21 · 465 阅读 · 0 评论 -
python3:函数 和类都是对象,可以通过以下几点证明
#函数 和类都是对象 ,可以通过以下几点证明:#1.可以 赋值 给变量def ask():print(“testing”)a=ask()class Persion:def init(self):print(“object”)#2. 可以添加打集合a=[]a.append(ask)a.append(Persion)for i in a:print(i())#3. 可以...原创 2018-10-18 00:28:23 · 367 阅读 · 0 评论 -
python3:Python 异常处理以及with 语句的使用
try …except…else 语句是处理异常公式, try 是有可能抛异常的代码块, except 抓取异常的类型, else 是指当没有抓到抛错,就运行这块代码。请看下下边的例子:try: print("抓取的有可能的代码块") raise IOErrorexcept IOError as e: print("except IOError&a原创 2018-10-21 19:49:43 · 4571 阅读 · 1 评论