100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 小李飞刀:Python我又来啦 例无虚发~

小李飞刀:Python我又来啦 例无虚发~

时间:2018-10-07 01:53:37

相关推荐

小李飞刀:Python我又来啦 例无虚发~

一点点小刀刀

晚上收到了某招聘软件的HR的消息,心里慌的不行。

因为很想换岗位了,可是当机会来的时候,我却只能表示能力不行。

所以要速速的加油了!!!

开始学习的分割

日常一点点小鸡血!

请不要假装努力,结果不会陪你演戏。

面向对象高级编程

使用@property

Python内置的@property将方法变成属性调用。

class Student(object):@propertydef score(self):return self._score@score.setterdef score(self, value):if not isinstance(value, int):raise ValueError('score must be an integer!')if value < 0 or value > 100:raise ValueError('score must between 0 ~ 100!')self._score = value

加上@property后就变成了getter的方法,@property本身又创建了另一个装饰器score.setter,负责把一个setter方法变成属性赋值。

只定义getter方法,不定义setter方法就是一个只读属性

做个作业~

多重继承

通过多重继承,一个子类可以继承多个父类的属性与方法。

class Father(object):passclass Mother(object):passclass children(Father,Mother):pass#这样孩子就同时继承了爸爸和妈妈的属性

MixIn

设计继承关系的时候,多重继承的设计被成为MixIn。

所以在上面的代码中,我们可以考虑把Father改为FatherMixIn来更好的看出继承关系。

class FatherMixIn(object):passclass MotherMixIn(object):passclass children(FatherMixIn,MotherMixIn):pass

MixIn的目的就是给一个类增加多种功能,所以在设计类的时候,尽量考虑多重继承,少用复杂的多层次的类的继承。

Python自带的很多库也使用了MixIn。举个例子,Python自带了TCPServer和UDPServer这两类网络服务,而要同时服务多个用户就必须使用多进程或多线程模型,这两种模型由ForkingMixIn和ThreadingMixIn提供。通过组合,我们就可以创造出合适的服务来。

很多语言仅有单一继承的情况,如Java。

定义类

__str__

定义__str__方法,可以打印的好看

直接显示变量调用的不是__str__(),而是__repr__(),两者的区别是__str__()返回用户看到的字符串,而__repr__()返回程序开发者看到的字符串,也就是说,__repr__()是为调试服务的。
__iter__

定义__iter__方法,在被用于for...in循环时返回迭代对象,for循环会不断的调用__next__()方法拿到下一个值,直到5终止。__getitem__

定义__getitem__方法,让实例变成list,但并不是真实的list,所以通过定义,让它变得像list一样可操作性。

要正确实现一个__getitem__()还是有很多工作要做的,因为传入的参数可能不是int。

__getattr__

可以尝试链式调用,这个等我明天脑子清晰的时候详细研究下。

代码先贴

class Chain(object):def __init__(self, path=''):self._path = pathdef __getattr__(self, path):return Chain('%s/%s' % (self._path, path))def __str__(self):return self._path__repr__ = __str__#无论API怎么变,SDK都可以根据URL实现完全动态的调用

__call__

还得看第二遍...明天一定要弄懂了

晚安~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。