zoukankan      html  css  js  c++  java
  • Python学习笔记 -- 第五章

    模块

    使用模块可以提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括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就指向创建的实例本身。

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

    继承和多态

  • 相关阅读:
    剑指offer---二叉搜索树的第k个结点
    剑指offer---把数组排成最小的数
    剑指offer---连续子数组的最大和
    剑指offer---最小的K个数
    Navicat for MySQL(Ubuntu)过期解决方法
    Ubuntu 无法应用原保存的显示器配置
    ubuntu 18.04 install gitlab-ce
    Flask 使用过程
    python版本 3.7.4rc1 (stable) / 3.8.0b1 (pre-release) / 3.9.0a0 (in development)
    Windows10 and MySQL使用
  • 原文地址:https://www.cnblogs.com/battleblock/p/4862404.html
Copyright © 2011-2022 走看看