python基础5

(魔法方法 ,模块)
1、魔法方法:
魔法方法:之前简单学习了一下魔法方法,其构建就是使用两个下划线进行包围;魔法方法是面向对象的python的一切,因为它们总能在需要的时候被调用。
init(self[,…]):类在实例化成对象时首先会调用的一个方法,需要注意的__init__()的返回值一定时none,不能是其他,所以一般初始化的时候才会使用此方法。
new(cls[,…]):此方法才是一个对象实例化时所调用的第一个方法,但是其第一个参数不是self而是cls,其他参数会直接传递给__init__()方法。一般很少重新此方法,都让python默认执行就好,但是当继承一个不可变的类型时,需要重写。
del(self):相当于一个python的析构器,当对象被销毁的时候,是python的垃圾回收机制回收对象是时候被调用。
工厂函数:所谓的工厂函数就是类对象,之前使用的很多±*/》《^等算法操作符均有相对应的魔法方法,我们可以通过重新魔法方法来改变这些运算符的意思。算术操作符也有相对应的反运算符,不同的就是前面加了一个r,一旦算术操作符没有实现或不支持就会调用反运算符。当然,相应的也有增值运算符、一元运算符。
属性访问:之前通过点操作符的形式访问对象,也可以用getattr、setattr、delattr、property等函数访问,当然这些函数也有相对应的访问属性的魔法方法。
描述符:和之前property的原理一样,将某种特殊类型的类的实例指派给另一个类的属性,什么是特殊类型呢?就是至少包含__get__()、 set()、 delete()三个特殊方法中的任意一个。几个参数的内容——self说描述符类自身的实例、instance是描述符拥有者所在的类的实例、owner是描述符拥有者所在的类的本身。
定制序列:就是改变容器,即元组、列表、字符串等。通过重新定义len、getitem、setitem等魔法方法来重新构建容器。
迭代器:常见的迭代器有序列还有字典等,常用for语句来进行迭代,关于迭代python还提供了两个BIF——intr()和next(),对一个容器对象调用intr()就得到它的迭代器,跳用next()就会返回下一个值,如果没有下一个值就会报stopinteration的异常。
生成器:生成器和魔法函数不搭边,但是既然说到了迭代器。生成器只需要在普通函数中加上一个yield语句即可,生成器可以暂时挂起函数并保留函数的局部变量,然后在函数再次调用的时候可以从上次暂停的位置继续执行下去。

2、模块:
容器是对列表、元组、字典的封装;函数是对语句的封装;类是对方法和属性也就是函数和数据的封装;而模块就是程序,平时写的任何一个.py的文件都是模块。
命名空间:每一个模块都会维护的一个独立的命名空间,防止不同模块函数的混杂,所以在使用模块里的函数时,应该加上模块名。
导入模块的方法:
(1)import 模块名
(2)from 模块名 import 函数名
(3)import 模块名 as 新名字
name = ‘mian’:这个属性让python知道该模块说作为程序运行还是导入到其他程序中,当使用此属性,后面接函数名时,这个函数就不会在调用时执行,只有在模块单独运行时才会执行。
搜索路径:当导入的模块不再python的搜索路径里时,需要用sys.path.append(‘路径’)把该路径加入到python 的搜索路径中。
包:一个大型系统有成千上万的模块,如果放在一起会有冲突,这里就加了包的概念,具体的操作步骤如下:1是创建一个文件夹用于存放相关的模块,文件夹的的名字即包的名字,2是在文件夹中创建一个__init__.py的模块文件,内容可以为空,3是将相关的模块放入文件夹。
python模块的思考:python 的开发哲学是只用一种方法来做一件事情,所以建议使用现场的模块;那么如何独立的探究模块呢?首先是要找到python 的文档,用help——python docs选项。python官方的帮助文档的主要组成部分:新版本有什么改进、简单介绍python的语法、列举python所有内置函数的标准库的各个模块的用法(当字典查吧)、如何按照和发布第三方模块、pypi社区、python语法和设计哲学、各个平台上如何使用python、C扩展、问答。需要注意的PEP,是python增强建议书的意思,用来规范和定义python的各种加强和延伸功能,每一个PEP都有唯一的编号,一旦约定了就不会改变。
单独的查找模块的用法:查找帮助文档,可以查到模块的位置、模块里面包含哪些类函数和其他功能。同时也可以使用__doc__属性查看模块的简介,用dir()函数可以查询该模块定义了哪些变量,用里面的__all__属性可以筛选出我们可以调用的模块说那些,当然不是所有的模块都有这个属性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值