类的高级方法: 1.静态方法:在类方法前增加关键字@staticmethod,将普通方法变成静态方法,不能再次传值,不能访问实例变量或者类变量,与类的关系仅仅是通过类名进行调用 2.类方法:在类方法前增加关键字@classmethod,类方法只能访问类变量,不能访问实例变量 3.属性方法:(重点)在类方法前增加关键字@property,调用的时候通过属性一样的方式访问(去掉括号调用),可以通过类私有属性加@setter重新赋值,@deleter删除私有属性后方能删除属性方法 静态方法: clas…
1.静态方法(用得少)(解除某个函数跟类的关联,加了静态方法后,类便不能将类的参数传给静态方法函数了) class Dog(object): def __init__(self,name): @staticmethod #下边的函数就是静态方法,但是下边的eat函数跟Dog类没有关联了,只是调用eat的时候,需要实例化Dog类再调用,eat不能再调用Dog类的任何参数和函数了 def eat(self,food): print("%s is eating %s " %(self.nam…
Python开发[第七篇]:面向对象   详见:<Python之路[第五篇]:面向对象及相关> python 面向对象(进阶篇)   上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个"函数"供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和…
Python3 与 C# 面向对象之-继承与多态   文章汇总:https://www.cnblogs.com/dotnetcrazy/p/9160514.html 目录: 2.继承 ¶ 2.1.单继承 ¶ 2.2.多继承 ¶ 2.3.C#继承 ¶ 2.4C#接口的多实现 ¶ 3 多态 ¶ 3.1.Python ¶ 3.2.C#虚方法实现多态 ¶ 3.3.C#抽象类实现多态 ¶ 3.4.C#接口实现多态 ¶ 正文: 代码裤子:https://github.com/lotapp/BaseCode…
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__getattr__ 二次加工标准类型(包装) __getattribute__ 描述符(__get__,__set__,__delete__) 再看property __setitem__,__getitem,__delitem__ __str__,__repr__,__format__ __slots__…
一.多态 什么是多态: 类的继承有两层意义:1.改变 2.扩展 多态就是类的这两层意义的一个具体的实现机. 即:调用不同类实例化的对象,下的相同的方法,实现的过程不一样 python中的标准类型就是多态概念的一个很好的示范如(str.__len__(),list.__len__(),tuple.__len__可以len(str),len(list),len(tuple)) #_*_coding:utf-8_*_ __author__ = 'Linhaifeng' class H2O: def _…
python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__() 和 __deltattr__()这三个通过属性的方式的三个方法 还有__getitem__(), __setitem__() 和 __delitem__()这三个函数, 是通过字典形式来处理属性 字典形式使用中括号的方式获取值 在实现__setitem__()的时候仍然需要使用__dict__来…
写在前面 上课第八天,打卡: 为什么坚持?想一想当初: 一.面向对象进阶 - 1.反射补充 - 通过字符串去操作一个对象的属性,称之为反射: - 示例1: class Chinese: def __init__(self,name): self.name=name p = Chinese('standby') # 实例化一个对象 print(p) # 打印这个对象 --- <__main__.Chinese object at 0x0000000000B3A978> - 示例2: >&g…
面向对象进阶 总结.补充(http://blog.csdn.net/fgf00/article/details/52479307) 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 动态绑定属性,限制绑定( __slots__) 异常处理 一. 面向对象高级语法部分 1.静态方法(@staticmethod) 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法. 普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态…
第1章 面向对象特性—继承(补充) 1.1 接口类.抽象类介绍 1.2 接口类 1.3 接口类应用过程 1.3.1 第一版:完成多种支付方式接口 1.3.2 第二版: 归一化设计,统一支付方式 1.3.3 第三版:野生程序员的乱搞 1.3.4 第四版:制定规范,统一方法名 1.3.5 第五版本:强制性制定规定 1.4 抽象类 1.4.1 解释: 1.4.2 为什么要有抽象类 1.4.3 抽象类实际应用理论 1.4.4 抽象类的使用方法 1.5 接口类和抽象类的区别 1.6 继承注意问题 第2章…
写在前面 为什么坚持?想一想当初: 一.面向对象进阶 - 1.反射补充 - 通过字符串去操作一个对象的属性,称之为反射: - 示例1: class Chinese: def __init__(self,name): self.name=name p = Chinese('standby') # 实例化一个对象 print(p) # 打印这个对象 --- <__main__.Chinese object at 0x0000000000B3A978> - 示例2: >>> l =…
面向对象进阶 目录 面向对象进阶 1 继承 1.1 继承入门 1.1.1 继承基础 1.1.2 类的基本使用 1.2 多继承 1.2.1 多继承的基本使用 1.2.2 多继承以后的重复性 1.3 类的类型 1.3.1 新式类 1.3.2 经典类 1.4 继承与抽象 1.4.1 抽象的两个层次 1.4.2 继承 1.4.3 示例 1.5 继承的运用 1.5.1 选课系统 1.5.2 选课系统进阶1.0 1.6 属性查找 1.6.1 对象的属性 1.6.2 案例 1.7 super实现选课系统 1.…
python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo: pass obj=Foo() print(isinstance(obj,Foo)) #判断是不是类的对象 输出结果为: True issubclass(sub, super)检查sub类是否是 super 类的派生类 class Bar(): pass class Foo(Ba…
面向对象进阶 类型判断 issubclass 首先,我们先看issubclass() 这个内置函数可以帮我们判断x类是否是y类型的子类. class Base: pass class Foo(Base): pass class Bar(Foo): pass print(issubclass(Bar, Foo)) # True print(issubclass(Foo, Bar)) # False print(issubclass(Bar, Base)) # True type 然后我们来看typ…
铁乐学python_day24_面向对象进阶1_内置方法 题外话1: 学习方法[wwwh] what where why how 是什么,用在哪里,为什么,怎么用 学习到一个新知识点的时候,多问问上面的四个问题,并了解和实践透彻. 什么是反射? 先不说枯燥的概念,你可以自己总结出来,对于python中的反射,什么时候会用到? 需要使用字符串数据类型的变量名来使用变量的时候用到反射. (通过字符串的形式操作对象相关的属性和方法.) 关键词:字符串 使用到字符串的场景多在: 1)文件中存储的是字符串…
铁乐学python_day23_面向对象进阶1_反射 以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ isinstance()和issubclass() 两者的返回值都是布尔值 isinstance() 能够检测到继承关系 type() 只能单纯的判断类 isinstance() 判断一个对象和一个类有没有血缘关系 issubclass() 接收两个参数,前一个是子类名,后一个是父类名 如果返回True,说明有父子(继承)关系. isinstance(obj,c…
一. 面向对象进阶与实例 dic = {'k': 'v' } 对象:存储 属性 和 调用方法 dic['k'] = 'v' class Foo: def __init__(self, name, age, sex): self.name = name self.age = age self.sex = sex def __getitem__(self, item): if hasattr(self, item): return self.__dict__[item] def __setitem_…
Python 3 面向对象进阶 一.    isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(obj, Foo) issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass i…
Python面向对象进阶2.html :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:3px}iframe{border:0}figure{-webkit-margin-before:0;-webkit-margin-after:0;-webkit-margin-start:0;-webkit-margin-end:0}kbd{border:1px s…
面向对象基础知识: 1.面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用: 2.类是一个模板,模板中包装了多个‘函数’供使用(可以将多函数中公用的变量封装到对象中): 3.对象,根据模板创建的实例(即:对象),实例用于被包装在类中的函数: 4.面向对象三大特性:封装.继承和多态. 面向对象进阶篇详细介绍python类的成员.成员修饰符和类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存…
进击のpython 面向对象进阶--__name__=="__main__" 前面我们在讲模块的时候,其实还有一个知识点没有很好的讲 那就是main和name 可能你们在看一些代码的时候或多或少的都会见到下面的这串代码 if __name__ == '__main__': func() 但是百思不得其解,这行代码到底是什么意思呢? 问题的解决都是一点一点来的 我们先打印这个__name__ 看看是啥! __main__ 可以看到打印出来的就是__main__ 熬,那就是说这个代码是恒成…
Python3实用编程技巧进阶  ☝☝☝ 1.1.如何在列表中根据条件筛选数据 # 1.1.如何在列表中根据条件筛选数据 data = [-1, 2, 3, -4, 5] #筛选出data列表中大于等于零的数据 #第一种方法,不推荐 res1 = [] for x in data: if x >= 0: res1.append(x) print(res1) #第二种用列表解析,推荐使用 res2 = [ x for x in data if x >= 0] print(res2) #第三种用f…
Python3实用编程技巧进阶  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以关注下面几点: 1.为了追求精简简洁牺牲了部分实用性,导致不足以达到某些工作的需要2.大部分是实战课程弱化了其他技术点的不足,无法全面了解python,但是很多都是刚接触python的(很致命)3.因为是录播课程导致某些问题不能及时去解决,没人交流(这个最烦) 所以真要把python学好,下面这些技…
python进阶_浅谈面向对象进阶 学了面向对象三大特性继承,多态,封装.今天我们看看面向对象的一些进阶内容,反射和一些类的内置函数. 一.isinstance和issubclass  class Foo:  pass   class Son(Foo):  pass   s = Son() #判断一个对象是不是这个类的对象,传两个参数(对象,类) print(isinstance(s,Son)) print(isinstance(s,Foo)) #type更精准 print(type(s) is…
Python3实用编程技巧进阶  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以关注下面几点:  1.为了追求精简简洁牺牲了部分实用性,导致不足以达到某些工作的需要  2.大部分是实战课程弱化了其他技术点的不足,无法全面了解python,但是很多都是刚接触python的(很致命)  3.因为是录播课程导致某些问题不能及时去解决,没人交流(这个最烦)  所以真要把python学好…
面向对象进阶当然是要谈谈面向对象的三大特性:封装.继承.多态 @property装饰器 python虽然不建议把属性和方法都设为私有的,但是完全暴露给外界也不好,这样,我们给属性赋值的有效性九无法保证,因此,为了使得对属性的访问既安全又方便,可以通过属性的getter(访问器)和setter(修改器)方法进行对应的操作,在python中,可以考虑使用@property包装器来包装getter和setter方法 class Person(object): def __init__(self,nam…
多态: 对象可以通过他们共同的属性和动作来访问,而不需要考虑他们的类多态是继承的应用 class H2o: def __init__(self,temp): self.temp=temp def htype(self): if self.temp<=0: print('结冰') if self.temp>0 and self.temp<60: print('化成水') if self.temp>=60: print('水蒸气') class bing(H2o): pass clas…
面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,…
大纲 一.面向对象高级语法 1.静态方法.类方法.属性方法 2.类的特殊成员方法 3.反射 二.异常处理 三.网络编程之socket基础 一.面向对象高级语法 1.静态方法:名义上归类管理,实际上静态方法里访问不了类或者实例中的任何属性 # _*_ coding:utf-8 _*_ __author__ = "ZingP" class Dog(object): def __init__(self,name): self.name = name @staticmethod # 实际上跟类…
一.isinstance和issubclass 1.isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj=Foo() print(isinstance(obj, Foo)) 输出 True 2.issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass print(issubclass(Bar, Fo…