1,继承机制:

上章讲到了class man(human): 这个表示类man继承human。下面介绍super( ),一个例子如下:

>>> class human:def __init__(self):self.gender = 'man'def say(self):if self.gender == 'man':print 'I am a man'else:print 'I am a women'
>>> class man(human):def __init__(self):self.name = 'Jack Ma'>>> f = man()
>>> f.name
'Jack Ma'
>>> f.gender
Traceback (most recent call last):File "<stdin>", line 1, in <module>
AttributeError: man instance has no attribute 'gender'
>>> f.say()
Traceback (most recent call last):File "<stdin>", line 1, in <module>
AttributeError: man instance has no attribute 'gender'

做了如下修改:

>>> class man(human):def __init__(self):super(man,self).__init__()self.name = 'Jack Ma'
>>> f = man()
>>> f.say()
TypeError: super() argument 1 must be type, not classobj
# 这个python2会报错,python3没有问题

2,静态方法(可以直接通过类名调用的方法):

>>> class myclass{@staticmethoddef mmm():print "mmm"@classmethoddef nnn():print "nnn"
}
>>> myclass.mmm()#直接通过类名调用

3,迭代器:

#迭代器使用自己的方法:
>>> class fibolacci:def __init__(self):self.a = 0self.b = 1def next(self):self.a,self.b = self.b,self.a+self.bdef __iter__(self):return self
>>> fib = fibolacci()
>>> for f in fib:if(f>1000):print fbreak
1597
#for循环内部事实上就是先调用iter()把Iterable变成Iterator在进行循环迭代的
>>> x = [1,3,4]
>>> i = iter(x)
>>> next(i)
1
>>> next(i)
3
>>> next(i)
4
#如果上面那个不好理解,那下面这个在网上找的可能更好理解:
class Fabs(object):def __init__(self,max):self.max = maxself.n, self.a, self.b = 0, 0, 1  #特别指出:第0项是0,第1项是第一个1.整个数列从1开始def __iter__(self):return selfdef next(self):if self.n < self.max:r = self.bself.a, self.b = self.b, self.a + self.bself.n = self.n + 1return rraise StopIteration()print Fabs(5)
for key in Fabs(5):print key

Python入门8_方法,属性,迭代器相关推荐

  1. Python入门--特殊方法

    #特殊方法和特殊属性 #特殊属性 --> __dict__ --> 获得类对象或实例对象所绑定的所有属性和方法的字典 #特殊方法 #1.__len__() --> 通过重写__len ...

  2. Python入门--特殊方法__len__(),__add()__

    #特殊方法和特殊属性 #特殊属性 --> __dict__ --> 获得类对象或实例对象所绑定的所有属性和方法的字典 #特殊方法 #1.__len__() --> 通过重写__len ...

  3. Python入门7_抽象进阶

    1,创建类和对象: class person:def setName(self,name):self.name = namedef getName(self):return self.namedef ...

  4. python类中的属性分为类属性和实例属性两种_python从入门到大神---1、初始化实例、类属性、方法...

    python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...

  5. Python入门学习笔记11(静态方法、类方法与属性方法)

    1.静态方法 静态方法通过@staticmethod装饰,静态方法无法访问类变量和实例变量,可以认为静态方法是一种归类在某个类之下,但是实际上与该类没有直接关系的方法,可通过类名调用. 例如一些工具集 ...

  6. Python入门基础(下)之魔方方法

    Python入门基础(下)之魔方方法 一.学习内容概括 学习地址:https://tianchi.aliyun.com/s/58327c15d1faee512c008128d3bb9e32 今天主要学 ...

  7. Python 内置方法和属性应用:反射和单例

    1. 前言 python除了丰富的第三方库外,本身也提供了一些内在的方法和底层的一些属性,大家比较常用的如dict.list.set.min.max.range.sorted等.笔者最近在做项目框架时 ...

  8. python内置类属性_Python内置方法和属性应用:反射和单例(推荐)

    1. 前言 python除了丰富的第三方库外,本身也提供了一些内在的方法和底层的一些属性,大家比较常用的如dict.list.set.min.max.range.sorted等.笔者最近在做项目框架时 ...

  9. python如何对一个属性或方法进行封装_python 类、对象、方法、属性

    在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) ...

最新文章

  1. 1 图片channels_深度学习中各种图像库的图片读取方式
  2. 使用HTML5的canvas做一个会动的时钟
  3. 手握6亿把钥匙 能否打开“智能家居”的大门?
  4. java file源码_java File源码理解,探索File路径
  5. android camera分辨率设置,请问如何使用camera2设置全屏preview,要求适配所有屏幕尺寸?...
  6. 加分二叉树 java_P1040 加分二叉树
  7. SAP Cloud Application Programming bookshop 例子 Vue页面不能正常显示的原因分析
  8. sql server数据库:创建数据库、建立数据库用户、为用户赋予权限
  9. linux 怎么添加path环境变量,Linux下怎么添加和查看PATH环境变量
  10. (一)nodejs循序渐进-nodejs环境安装(基础篇)
  11. set 有序吗js_2021了,你的vue实践够熟练了吗?源码思维呢?
  12. mysql服务器io等待高定位与分析
  13. Excel导入数据的实现
  14. ubuntu英伟达显卡驱动
  15. 京东白条数据架构进化之路:要在数据的不确定性中探索架构的稳定性
  16. 【Unity3d】U3d灯光
  17. Android 调用手机相册、摄像头拍照及剪裁照片
  18. Excel如何批量选中多张图片?
  19. docker搭建zabbix服务
  20. configure报错

热门文章

  1. java学习-BeanUtils给对象的属性赋值
  2. 批量建立EXCHANGE邮件帐号建立三部曲
  3. Mac清理软件为苹果系统迅速减压
  4. drawRect方法在UIImageView的派生类中不被调用
  5. MPLS/×××江湖恩仇录笔记
  6. Django搭建个人博客:文章标签功能
  7. 关于内存中栈和堆的区别[转]
  8. SharePoint中CAML使用的一些总结
  9. deprecated conversion from string constant to ‘char*’
  10. FA_手工明细增加固定资产(流程)