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

一点点小刀刀

晚上收到了某招聘软件的HR的消息,内心慌的不行。
由于很想换岗位了,但是当机会来的时候,我却只能表示能力不行。
因此要速速的加油了!!!编程

开始学习的分割

平常一点点小鸡血!
请不要伪装努力,结果不会陪你演戏。网络

面向对象高级编程

使用@property

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

class Student(object):

    @property
    def score(self):
        return self._score

    @score.setter
    def 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方法就是一个只读属性

作个做业~spa

clipboard.png

多重继承

经过多重继承,一个子类能够继承多个父类的属性与方法。线程

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

MixIn

设计继承关系的时候,多重继承的设计被成为MixIn。
因此在上面的代码中,咱们能够考虑把Father改成FatherMixIn来更好的看出继承关系。设计

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

MixIn的目的就是给一个类增长多种功能,因此在设计类的时候,尽可能考虑多重继承,少用复杂的多层次的类的继承。调试

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

不少语言仅有单一继承的状况,如Java。code

定义类

  • __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 = path
    
    def __getattr__(self, path):
        return Chain('%s/%s' % (self._path, path))
    
    def __str__(self):
        return self._path
    
    __repr__ = __str__
    #不管API怎么变,SDK均可以根据URL实现彻底动态的调用
  • __call__

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

晚安~

相关文章
相关标签/搜索