模块导入、__all__、__name__、包和文件的不同__init__.py、python函数帮助文档

模块(.py文件)

  1. 三大元素:全局变量、函数、类

  2. 判断程序的入口

# entry.py
def main():
    pass


print(__name__)
if __name__ == "__main__":
    main()
# import
# 在导入模块的时候,会把被导入模块中的代码全部执行一遍
# main的调用问题
# 自测时(__name__==“__main__”),执行。当被import时,被导入模块中的__name__等于自生模块名,所以不执行
# 如果被其他模块导入使用main函数不应该被执行(__name__==__entry__(模块名))

as 可以给全局变量名、类名、模块名取别名

all

  • 被导入的模块中的__all__是配合导入模块from yang import *使用,只能存在在__all__中的字符串对应的全局变量、函数名、类名才能被from yang import *
__all__= ['', ''] # ‘’中可以是变量名、类名、函数名

例子:

# slave.py
__all__ = ['avg', "name", "Person"]
name = '制作模块'


def avg(first, *rest):
    print('__name__ of slave is {}'.format(__name__))
    return (first + sum(rest)) / (1 + len(rest))


class Person(object):
    pass


def main():
    print(name)
    print(avg(1, 2, 3, 4))
    print(Person)


if __name__ == "__main__":
    main()

# master.py
from slave import *

print(avg(1, 2, 3, 4))
print(Person)
print(name)
try:
    main()
except Exception as e:
    print("catch except {}".format(e))

执行master.py
name of slave is slave
2.5
<class ‘slave.Person’>
制作模块
catch except name ‘main’ is not defined

python中的包和文件不同之处

包有__init__.py文件
配合包中的__init__.py使用从包中导入
from 包名 import *
在__init__.py中使用__all__=[‘模块名1’, ‘模块名2’,]

** 包里面不能再出现包,不然导入的时候会找不到,python项目文件深度最好不超过两层**
电脑一般使用的单位是像素,比如程序中做图,壁纸…
封装过程: 变量-》函数-》类-》模块-》包

查看python的模块和函数帮助文档方法

命令行help()

命令行能使用的东西,模块中都能使用

help()
Welcome to Python 3.6’s help utility!

help> modules
Please wait a moment while I gather a list of all available modules…

模块帮助查询

查看.py结尾的普通模块help(module_name)

>>> import math
>>> help(math)
Help on built-in module math:

NAME
    math

DESCRIPTION
    This module is always available.  It provides access to the
    mathematical functions defined by the C standard.

FUNCTIONS
    acos(...)
        acos(x)

        Return the arc cosine (measured in radians) of x.
# q 退出

查看内建模块sys.bultin_modulenames

>>> import sys
>>> sys.builtin_module_names
('_ast', '_bisect', '_codecs', '_codecs_cn', '_codecs_hk', ... 'zlib')

需要导入sys模块。这里列举的一般是自带的使用C/C++编译链接的模块

查询函数信息

查看模块下所有函数dir(module_name)

>>> dir(math)
['__doc__', '__loader__', '__name__',...]
>>> 

查看模块下特定函数信息help(module_name.func_name)

如查看math下的sin()函数
>>> help(math.sin)
Help on built-in function sin in module math:

sin(...)
    sin(x)

    Return the sine of x (measured in radians).

查看函数信息的另一种方法print(func_name.doc)

>>> print(print.__doc__)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.

__doc__前后是两个短下划线,在python中会合并为长下划线
python中的help()类似unix中的man指令,熟悉后会对我们的编程带来很大帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值