1. 类命名空间 在类的代码中,当python 解释器在 运行的那一刻.就会在内存中开辟一个类空间,在类的空间中会加载静态变量,以及类方法的内存地址. 当类名+()(也就是实例化过程中),内存中会再次开辟一个实例(对象)的空间,此时该对象空间中生成一个类对象指针,类对象指针指向 类空间.然后自动执行_ _init_ _的方法,将此方法中的属性添加到对象空间中. 查询顺序 如何计数实例化对象的数量. 2.组合 组合是给一个类的对象封装一个属性,这个属性是另一个类的对象. 版本一:虽然能实现功能,但…
面向对象之:类空间问题以及类之间的关系 1.从空间角度研究类 1.何处添加对象属性 class A: def __init__(self,name): self.name = name def func(self,sex): self.sex = sex # 类外面可以: obj = A('barry') obj.age = 18 print(obj.__dict__) # {'name': 'barry', 'age': 18} # 类内部也可以: obj = A('barry') # __i…
一. 类的空间问题 1何处可以添加对象属性 class A: def __init__(self,name): self.name = name def func(self,sex): self.sex = sex # 类外面可以 obj = A('barry') obj.age = 18 print(obj.__dict__) # {'name': 'barry', 'age': 18} # 类内部也可以 obj = A('barry') # __init__方法可以. obj.func('男…
一. 类的空间问题 1.1 何处可以添加对象属性   class A: def __init__(self,name): self.name = name def func(self,sex): self.sex = sex     # 类外面可以: obj = A('barry') obj.age = 18 print(obj.__dict__) # {'name': 'barry', 'age': 18} # 类内部也可以: obj = A('barry') # __init__方法可以.…
一. 类的空间问题 1.1 何处可以添加对象属性 class A: def __init__(self,name): self.name = name def func(self,sex): self.sex = sex # 类外面可以: obj = A('barry') obj.age = 18 print(obj.__dict__) # {'name': 'barry', 'age': 18} # 类内部也可以: obj = A('barry') # __init__方法可以. obj.fu…
浅谈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…
python day 17 UML:unified modeling languages,是一种基于面向对象的可视化建模语言. 画图语言:画图要合理.即符合逻辑. 历史: 3.1. 软件功能越来越强大,导致不可维护性,出现了软件危机,国际组织,召集了50个顶尖程序员解决这个问题. 3.2. 软件工程:用工程学的方法论来指导软件开发,目的是来解决软件危机. 3.3. 按照工程学的角度,最重要的一步就是建模. 3.4. 建模:建立模型.图纸+沙盘.模型分为很多种角度. 3.5. 在中国,软件的大多数…
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__) # 在类的内部可以添…
python 高级之面向对象初级   python 高级之面向对象初级 本节内容 类的创建 类的构造方法 面向对象之封装 面向对象之继承 面向对象之多态 面向对象之成员 property 1.类的创建 面向对象:对函数进行分类和封装,让开发"更快更好更强..." 在python2.7中有两种类,一种是经典类,一种是新式类.2.7中经典类和新式类区别在于类的定义的时候在类名后面加上(object)的是新式类,否则就是经典类.经典类和新式类在继承上面有区别,之后在继承的时候会提及.但是在p…