python笔记:第十章开箱即用的模块

这篇具有很好参考价值的文章主要介绍了python笔记:第十章开箱即用的模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.模块

import 模块名

1.1 模块就是程序

任何python程序都可以作为模块导入,并标明程序(模块)的位置

import sys
sys.path.append('路径')
import hello  // 在同一文件夹下

会在该文件夹里面自动生成一个__pycache__ 文件夹,包含处理后的文件。(可删除,无影响)

在hello.py里面编写函数

在t13.py里面调用模块函数

import hello
hello.hello1()

运行结果

hello
hello!

1.2 模块属性

1.2.1 name

检查模块是作为程序运行还是被导入到另一个程序

如:在t13文件中,查看name属性

print(__name__)
> __main__

在t13文件中,查看hello文件的name属性

print(hello.__name__)
> __hello__

1.2.2 dir

查明模块包含哪些东西,列出对象的所有属性(函数,类,变量)

print(dir(模块名))
import box.shapes as sh
print(dir(sh))
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']

1.2.3 变量__all__

用于指定一个模块的所有公共接口(方法),只有被__all__指定的接口,才可以被正确导入。

module.py

__all__ = ['foo', 'bar']

def foo():
    print("This is foo!")

def bar():
    print("This is bar!")

def baz():
    print("This is baz!")

main.py

from module import *

foo()  
bar()  

baz()  

运行main.py结果

This is a foo!
This is bar!
NameError: name 'bar' is not defined

1.2.4 文档__doc__

查看模块信息和函数信息

print(range.__doc__)
range(start, stop[, step]) -> range object

Return an object that produces a sequence of integers from start (inclusive)
to stop (exclusive) by step.  range(i, j) produces i, i+1, i+2, ..., j-1.
start defaults to 0, and stop is omitted!  range(4) produces 0, 1, 2, 3.
These are exactly the valid indices for a list of 4 elements.
When step is given, it specifies the increment (or decrement).

自定义文档字符串

通过三引号的方式添加

def plus(a, b):
	'''This is a plus'''
	print(a + b)

print(plus.__doc__)
> This is a plus

1.2.4 获取模块路径__file__

可以获取当前模块所在的目录或文件的绝对路径。

如main.py

print(__file__)
> d:\M\github\Python\Demo\main.py

还可以使用os.path模块的方法对路径进行处理,例如获取当前模块所在目录的绝对路径:

import os

module_dir = os.path.dirname(os.path.abspath(__file__))
print(module_dir)
> d:\M\github\Python\Demo

2.包

包可以包含其他模块,模块存储在扩展名为.py的文件中,包则是一个目录。

包必须包含有__init__.py文件

在与文件夹box的同级文件下可以导入

import box
import box.shapes

3.一些重要的模块

3.1 sys

3.2 os

3.3 fileinput

3.4 集合,堆和双端队列

3.5 time

3.6 random

3.7 shelve和json

3.8 re

re,即正则表达式模块文章来源地址https://www.toymoban.com/news/detail-581354.html

到了这里,关于python笔记:第十章开箱即用的模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包