模块

使用模块可以提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块;
使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。

作用域

有的函数和变量我们希望仅仅在模块内部使用。在Python中,是通过_前缀来实现的。
__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的author,__name__就是特殊变量,hello模块定义的文档注释也可以用特殊变量__doc__访问。
类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc。

安装第三方模块

图片Pillow模块
随便找个图片生成缩略图

from PIL import Image
im = Image.open('test.png')
print(im.format, im.size, im.mode)
PNG (400, 300) RGB
im.thumbnail((200, 100))
im.save('thumb.jpg', 'JPEG')

常用的第三方库还有MySQL的驱动:mysql-connector-python,用于科学计算的NumPy库:numpy,用于生成文本的模板工具Jinja2

面向对象编程

把计算机程序视为一系列的命令集合,把大块函数通过切割成小块函数来降低系统的复杂度。
可以接收其他对象发来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:

class Student(object):
def init(self, name, score):
self.name = name
self.score = score

__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。

类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都互相独立,互不影响;
方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据;
通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节。

继承和多态

最新文章

  1. HDU--最小路
  2. 关于SAP日期操作的几个函数
  3. javascript中array常用属性方法
  4. 火狐的调试利器-----Firebug
  5. ubunut 14.04 将Caps Lock设置为Control
  6. MySQL日期数据类型、时间类型使用总结
  7. jQuery中的尺寸及位置的取和设
  8. Intellij IDEA的Hibernate简单应用
  9. Phalcon框架中的另类使用
  10. Java OCR tesseract 图像智能字符识别技术 Java代码实现
  11. IIS7 / IIS7.5 URL 重写 HTTP 重定向到 HTTPS
  12. C语言可变参数va_list
  13. react-native项目中集成react-native-camera插件
  14. [树状数组+逆序对][NOIP2013]火柴排队
  15. Python爬虫项目--爬取某宝男装信息
  16. PR
  17. TCP系列18—重传—8、FACK及SACK reneging下的重传
  18. JavaScript 函数,math对象,Date对象 序列化 总结
  19. PCB的版本控制
  20. 《c程序设计语言》读书笔记-3-3-速记扩充

热门文章

  1. 一个CSS值转REM的Sublime Text插件
  2. C#异步编程のWPF Invoke和BeginInvoke
  3. jquery $("[id$='d']").val();这句话什么意思?
  4. ucml JS调用其它页面上的服务端方法
  5. centos7搭建filebeat
  6. LVS + Keepalived 理论
  7. EasyUI tab
  8. 【Codeforces Round 1114】Codeforces #538 (Div. 2)
  9. 源码分享篇:使用Python进行QQ批量登录
  10. 前端知识点总结(html+css)部分