python基础之模块和类

1.模块:

模块的定义:

    在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在 Python 中,一个.py文件就称之为一个模块(Module)。逻辑上组织python代码(函数,变量,类)

模块的优点:
    最大的好处是大大提高了代码的可维护性。

    提高代码的利用率。
    使用模块还可以避免函数名和变量名冲突。

模块导入的三种模式
     import cacl
          调用方式:直接导入cacl模块,使用其方法:cacl.add(1,3)
          cacl = {cacl里面的所有代码进行解释}
          cacl.path
   from cacl import add
         调用方式:导入cacl模块里面的add方法:add(1,2)
         只把add解释执行放入当前py文件中
  from cacl import add as myadd
         myadd = add
       调用方式:如果当前py代码包含add方法,但仍然想要使用cacl模块中的add函数可以对该函数进行重命名;
导入模块的灵活应用,导入多个模块

       from cacl import jian,multi

路径搜索和搜索路径:

     路径搜索是个过程,搜索路径是个路径

    模块的导入需要一个叫做路径搜索的过程。 即在文件系统"预定义区域"中查找 mymodule.py文件,这些预定义区域只不过是你的python搜索路径的集合。
添加一路径,让路径搜索时导入相应的自定义模块
    import sys
   print sys.path
   sys.path.append('')   
   sys.path.insert(0,'')
模块的分类
       内置模块(os,sys,dnspython,socket,time,excel)
      开源模块(BeautifulSoup,flask,django , css,html,bootstrap,node.js)

      自定义模块

2.类

虽然Python是解释性语言,但是它是面向对象的,能够进行对象编程。

面向对象编程的几个术语:类,类对象,实例对象,属性,函数和方法。

        类是对事物的抽象,定义类是通过 class 关键字,类的实例是对象,类中的变量是属性,类中的函数是方法。

       在Python中有一些内置的方法,这些方法命名都有比较特殊的地方(其方法名以2个下划线开始然后以2个下划线结束)。类中最常用的就是构造方法和析构方法。

        构造方法__init__(self,....)在生成对象时调用,可以用来进行一些初始化操作,不需要显示去调用,系统会默认去执行。构造方法支持重载,如果用户自己没有重新定义构造方法,系统就自动执行默认的构造方法。

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

  析构方法__del__(self)在释放对象时调用,支持重载,可以在里面进行一些释放资源的操作,不需要显示调用。

          和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self ,并且,调用时,不用传递该参数。 除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数和关键字参数。


 面向对象的特性:
  1. 封装性:私有方法和私有属性;
  2. 继承:继承父类的方法和属性;object 类,这是所有类最终都会继承的类
  3. 多态:同一个动作不同的类会调用不同的方法


新式类(object)和经典类

     在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,都会获得所有“新式类”的特性;反之,即不由任意内置类型派生出的类,则称之为“经典类”。

    “新式类”和“经典类”的区分在Python 3之后就已经不存在,在Python 3.x之后的版本,因为所有的类都派生自内置类型object(即使没有显示的继承object类型),即所有的类都是“新式类”。

     经典类多继承------深度优先--------属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧;

      新式类多继承------广度优先策略(效率高)python3--------------属性搜索顺序: 先水平搜索,然后再向上移动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值