Skip to content

Latest commit

 

History

History
78 lines (48 loc) · 1.86 KB

62.模块制作.md

File metadata and controls

78 lines (48 loc) · 1.86 KB

模块制作

一.定义自己的模块

在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。

比如有这样一个文件test.py,在test.py中定义了函数add

test.py:

def add(a,b):
    return a+b

二.调用自己定义的模块

那么在其他文件中就可以先import test,然后通过test.add(a,b)来调用了,当然也可以通过from test import add来引入

main.py

import test
result = test.add(11,22)
print(result)

三.测试模块

在实际开中,当一个开发人员编写完一个模块后,为了让模块能够在项目中达到想要的效果,这个开发人员会自行在py文件中添加一些测试信息,例如:

test.py

def add(a,b):
		return a+b

# 用来进行测试
ret = add(12,22)
print('int test.py file,,,,12+22=%d'%ret)

如果此时,在其他py文件中引入了此文件的话,想想看,测试的那段代码是否也会执行呢!

main.py

import test

result = test.add(11,22)
print(result)

运行结果:

int test.py file,,,,12+22=34
33

至此,可发现test.py中的测试代码,应该是单独执行test.py文件时才应该执行的,不应该是其他的文件中引用而执行

为了解决这个问题,python在执行一个文件时有个变量__name__

四.__name__属性

1.__name__属性可以做到,测试模块代码只在测试情况下被运行,而在被导入时不会被执行

2.__name__是python的一个内置属性,记录着一个字符串

3.如果是被其他文件导入的,__name__就是模块名

4.如果是当前执行的程序__name__是__main__

五.模块中的_all_

如果一个文件中有_all_[变量],那么也就意味着这个变量中的元素,会被from xxx import *时导入,而不在变量中的元素则不会被导入