python粗谈面向对象(二)】的更多相关文章

浅谈super() super并不是一个函数,是一个类名,形如super(B, self)事实上调用了super类的初始化函数,产生了一个super对象:Python的多继承类是通过mro的方式来保证各个父类的函数被逐一调用,而且保证每个父类函数只调用一次(如果每个类都使用super),并且按照mro序列一次调用.下面是一个小练习: class A: def fun(self): print('in A') class B(A): def fun(self): super().fun() pri…
1.面向过程编程vs函数式编程 面向过程编程 以计算对象的元素个数为例. str_1 = 'abcdefg' count = 0 for i in str_1: # 统计字符串元素个数 count += 1 list_1 = [1,2,3,4] count = 0 for i in list_1: # 统计列表元素个数 count += 1 由上面的内容我们可以看出如果还有需要统计元素的对象,那么我们还需要写一个for循环.如果有一百个需要统计的对象我们就需要写一百个for循环.但是可以发现fo…
本节内容 1.isinstance(obj,cls)和issubclass(sub,super) 2.反射 3.__setattr__,__delattr__,__getattr__ 一. isinstance(obj,cls)和issubclass(sub,super) 1.isinstance(obj,cls) 检查obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() print(isinstance(obj, Foo)) # True 2.…
6.2 类的空间角度研究类 6.2.1 添加对象属性 [总结]对象的属性不仅可以在__init__里面添加,还可以在类的其他方法或者类的外面添加. class A: address = '召唤师峡谷' def __init__(self, name): self.name = name def func(self,type): self.type = type # 类的外部可以添加 obj = A('盖伦') obj.age = 20 print(obj.__dict__) # 在类的内部可以添…
一点提醒 首先在使用pickle读取load时,需要先把使用到的类import上,否则会报错.在pycharm中使用时不会报错,但在linux或者cmd时就会报错!必须import. 报错提示: File "/Users/shane/PycharmProjects/Py_study/Base/S8/s9.py", line 8, in <module> tt=pickle.load(open('test.pickle','rb')) FileNotFoundError: […
1.成员 类成员 类变量 绑定方法 类方法 静态方法 属性 实例成员(对象) 实例变量 1.1实例变量 类实例化后的对象内部的变量 1.2类变量 类中的变量,写在类的下一级和方法同一级. 访问方法: 类.类变量名称(推荐) 对象.类变量名称 面试题: 总结:找变量优先找自己,自己没有找 类 或 基类:修改或赋值只能在自己的内部设置. class Base: x = 1 obj = Base() print(obj.x) # 先去对象中找,没有再去类中找. obj.y = 123 # 在对象中添加…
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…
二十. Python基础(20)--面向对象的基础 1 ● 类/对象/实例化 类:具有相同属性.和方法的一类人/事/物 对象(实例): 具体的某一个人/事/物 实例化: 用类创建对象的过程→类名(参数) # 这个参数传给__init__方法 类的的定义 : class关键字 类名(首字母大写)   2 ● 面相对象方法在什么时候用? 需要反复传递相同的参数给一些函数的时候 例如一个长方形的长/宽作为参数反复传递给计算面积/周长/对角线的函数   3 ● 属性 ① 类中的属性:     #静态属性…
一.类的特殊成员 我们在Python学习之==>面向对象编程(一)中已经介绍过了构造方法和析构方法,构造方法是在实例化时自动执行的方法,而析构方法是在实例被销毁的时候被执行,Python类成员中还存在着一些具有特殊意义的方法,下面我们来一一介绍一下: 1.__doc__ 表示类的描述信息 class Foo: ''' 描述类信息 ''' def func(self): pass print(Foo.__doc__) # 描述类信息 2.__module__ 和  __class__  __mod…
title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自11期罗天帅学长) 一.面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量…