python学习日记

【python学习日记】模块导入、面向对象

2018-07-07  本文已影响0人  lony荼靡

1.模块导入

将代码按照不同的功能拆分放到不同的.py文件中,每个.py文件就是一个模块。不同模块中的变量名可以相同,他们不会受影响。在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,这里就需要运用包的概念了。

包是带有__init__.py文件的文件夹。包必须有__init__.py文件,不然他就是个文件夹。包是用来区分不同类型的模块,不同包中的模块名可以相同,他们不会相互受影响。包下可以还有包(子包),如同子文件夹

com/ 顶层包

    __init__.py              初始化 com包

    comtest.py              com 下comtest模块

    woodman/                com下的子包

            __init__.py

            woodtest.py

            ...

    gif/                    图片处理包

            __init__.py

            gifecho.py

            giftest.py      注意添加代码

            ...

    modle/                  modle子包

            __init__.py

            model.py

import... as...

import 模块路径.文件名 as 别名,当文件在当前目录下或PATH环境变量下,可以直接import 文件名,否则要从项目根目录下开始指定路径。如果要同时导入多个模块,只需要在模块名之前用逗号进行分隔:import module1,module2,module3....别名,直接引入文件名可以不用别名,如果带模块路径引入最好加上别名,使用时直接 【别名. 】使用

在用import语句导入模块时最好按照以下的顺序:

1、python 标准库模块     2、python 第三方模块      3、自定义模块

import math       # 引入math模块,系统自带模块都在PATH下

import com.gif.gifecho as gif         # 引入gifecho 模块

from ... import ...

from 模块路径.文件名 import 变量名\函数\类名

from com.gif.giftest import *             # 引入giftest.py 下的全部

from com.gif.giftest import add        # 只引入add函数

from com.gif.giftest import giftest    # 只引入giftest类

深入模块http://www.runoob.com/python3/python3-module.html(以后补充)

2.面向对象

把程序看做不同的对象相互调用,是一种对具体事务的抽象模型。Python中一切都是对象。面向对象编程最基本特征是类和实例。类是用于定义抽象的对象模型,实例是根据类创建的对象。

类(Class): 用于定义抽象的对象模型,它是描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

类属性(类变量):类属性在整个实例化的对象中是公用的。类属性定义在类中且在函数体方法之外。类属性通常不作为实例变量使用。

方法:类中定义的函数。

实例属性(实例变量):只做用于当前实例的变量属性。

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

实例化:创建一个类的实例,类的具体对象。

实例:根据类定义的抽象模型创建出来的具体对象。

对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法,其实他就是实例。

数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。

继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。

class person(object):

  address = '中国'    # 类属性,没个实例的公共属性

  def __init__(self, name, sex, age): 

      self.name = name       # 实例属性

      self.sex = sex              # 实例属性

      self.age = age            # 实例属性

  def dance(self):          # 方法

      print(self.name, '跳了一场舞')

hong = person('小红', '女', 18)    # 实例化小红,将实例化的对象赋值给变量hong

ming = person('小明', '男', 26)

hua = person('小花', '女', 22)

类:根据共有特征定义一个类(抽象对象模型)<人>类的相同属性有姓名、性别、年龄实例:根据<人>类可以创建不同的人,如【小明】、【小红】等具有自己相应特征的人,【小明】、【小红】就是实例

类的私有属性:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs

类的方法:在类地内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数,self 代表的是类的实例。

类的私有方法:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类地外部调用。self.__private_methods

上一篇下一篇

猜你喜欢

热点阅读