一点点小刀刀

晚上收到了某招聘软件的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):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。

定义类

  • __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__

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

晚安~

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

  1. 在线试玩,在体感游戏中打败泰森,这位小哥破解了任天堂「拳无虚发」

    视学算法报道 编辑:张倩.陈萍 加入体感控制,这位小哥破解了原版任天堂的拳击格斗游戏「拳无虚发」. 在经典红白机上玩拳击游戏是很多人的童年回忆,其中就包括任天堂 1987 年发布的拳击格斗游戏--「P ...

  2. 在Python中创建单例

    这个问题不是为了讨论是否需要单例设计模式 ,是否是反模式,还是针对任何宗教战争,而是要讨论如何以最pythonic的方式在Python中最好地实现此模式. 在这种情况下,我定义"最pytho ...

  3. python趣味编程10例-python趣味编程100例(99个)

    [实例简介] python如今很流行,AI的首选工具:python趣味编程100例(99个),学习编程不枯燥. [实例截图] [核心代码] python趣味编程100例(99个) └── python ...

  4. Python虚拟机函数机制之无参调用(一)

    PyFunctionObject对象 在Python中,任何一个东西都是对象,函数也不例外.函数这种抽象机制,是通过一个Python对象--PyFunctionObject来实现的 typedef s ...

  5. 全球首例无人车撞人致死事故判决:Uber无罪,安全员要进一步调查

    李根 发自 凹非寺  量子位 报道 | 公众号 QbitAI Uber无人车致命车祸判决结果来了. 美国检方宣布:Uber不承担刑事责任,但当时在车上驾驶位的安全员须被进一步调查. 也就是说,全球首例 ...

  6. python精彩编程200例-python趣味编程100例(99个)

    [实例简介] python如今很流行,AI的首选工具:python趣味编程100例(99个),学习编程不枯燥. [实例截图] [核心代码] python趣味编程100例(99个) └── python ...

  7. python趣味编程与精彩实例-python趣味编程100例(99个)

    [实例简介] python如今很流行,AI的首选工具:python趣味编程100例(99个),学习编程不枯燥. [实例截图] [核心代码] python趣味编程100例(99个) └── python ...

  8. Python音乐跳舞毯(基于海龟画图创作的作品,来自Python创意编程100例sprites篇_Python精灵模块)

    出色的配音是本作品的一大亮点哦! 相信这竟然是Python用海龟画图制作的作品吗? sprites模块就是用python的turtle模块制作的!所以本作品仍属于Python海龟画图作品 " ...

  9. Python创意编程100例turtle篇题目串烧

    海龟变身孙悟空,迷宫寻宝讲相声! 哪吒妙用孙子兵法,世界名人尽赞之.忍者品德好,遇见合金弹头主角时怦然心动了,赠送了他花框音乐盒. 生机勃勃的农场孕育了漂亮的二叉分形树.超级玛丽玩起坦克大战还邀请解& ...

最新文章

  1. 北京智源人工智能研究院启动“智源学者计划”,与旷视发布首个智源联合实验室
  2. Java bitset转string_Java 二进制和十进制互转,二进制和BitSet互转
  3. Snackbar源码分析
  4. Java 设计模式之单例模式
  5. javascript-Global与Math对象
  6. 1-4 鸡兔同笼(算法竞赛经典入门)
  7. 入门讲解:使用numpy实现简单的神经网络(BP算法)
  8. security工作笔记007---spring security自定义AuthenticationProvider,验证规则
  9. PHP常用方法(不定时更新)
  10. Arduino + USB Host Sheild 实现USB鼠标转PS/2接口
  11. 新浪微博html不完整,新浪微博显示不正常怎么解决
  12. 计算机分析桁架受力,桁架的结构设计和受力分析
  13. 【跨境电商】EDM邮件营销完整指南(二):如何开展EDM营销活动
  14. win7右键反应特别慢的问题
  15. iOS 15:Spotlight 搜索中的所有新功能
  16. APP登录功能的Java服务端开发
  17. (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  18. Idea2023安装教程
  19. 圣人、君子、小人、庸人的划分标准
  20. 强制结束进程的命令和软件

热门文章

  1. saltstack高效运维简介和部署,SaltStack 与 Ansible 如何选择?
  2. Arranging Wine
  3. CSS实现鼠标经过div时改变背景图片
  4. JAVA dwg转pdf的正确解法
  5. Docker常用命令(启动、镜像相关、容器相关、文件拷贝、目录挂载、查看容器IP地址、Docker备份与恢复)
  6. 一个程序员如何给LPL发弹幕加油
  7. linux 网络编程相关知识
  8. 古典概型,条件概率,贝叶斯公式
  9. EAX、ECX、EDX、EBX
  10. 三种方法查看电脑IP地址是否被占用