开发者学堂课程【Python 入门 2020年版:__name__的使用 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10364
__name__的使用
内容介绍:
一、案例概要
二、__name__的作用
一、案例概要
1.在 demo 文件中存在一种几种函数,在代码中如果添加了以下内容,
def division(a,b):
return a / b
division 进行的除法运算,将上述代码可以达到让别人使用的目的,但不完全的将代码给别人,需要再给别人之前进行测试,加入 print(division(4,2))
来测验正确性
代码内容为:
_all_=[‘m’,’test’]
m=’yes’
n=’100’
def test():
print(‘我是demo模块里的test方法’)
def foo():
print(‘我是demo模块里的foo方法’)
def division(a,b):
return a / b
print(division(4,2))
结果如下图:
2.将 print 所在行修改 print( ‘ 测试以下 division 函数,结果是’ division(4,2))
代码内容为:
_all_=[‘m’,’test’]
m=’yes’
n=’100’
def test():
print(‘我是demo模块里的foo方法’)
def division(a,b):
return a / b
print( ‘测试以下division函数,结果是’, division(4,2))
结果如下图:
注意:在这里直接运用 demo.py ,它会直接打印出内容。
3.通过运行之前课程中的 03 使用自定义代码模块的代码,在 demo.py 文件中的 print 所在行代码是否可以运行?
先运行 03- 使用自定义模块的代码,会发现能够直接运行 demo.py 文件中的 print语句。
在这个文件中只要写了 from demo import * 或是 import demo 这种类似的语法,就会自动执行 demo 中的代码,这个 demo.py 文件写到了 print 语句,所以会自动执行。
4.如何在所写的 demo 模块中判断添加的方法好坏?
这个代码应该要在测试代码中直接运行才能够执行的,如果不直接运行,而是当一个模块导入到另一个文件中,它是不会执行。即在下图右侧部分选中右击运行就会执行,在左侧部分只是把 demo 当作一个模块,它不会运行。
5.如何保证把 demo 当作模块导入,即导入后的 demo 不会运行?
只要读了新文件,是类似与 import 的语句,它就会在运行新文件的时候执行
这需要用到__name__,在 demo.py 文件中添加 print(‘demo 里的 name是:’,__name__)
代码内容变为:
_all_=[‘m’,’test’]
m=’yes’
n=’100’
def test():
print(‘我是demo模块里的test方法’)
def foo():
print(‘我是demo模块里的foo方法’)
def division(a,b):
return a / b
print(‘demo里的name是:’,__name__)
print(division(4,2))
在右侧 demo.py 文件的运行效果是:
会发现它所显示的是__main__
在左侧 03- 使用自定义模块 .py 文件的运行效果是:
会发现它所显示的是 name
二、__name__的作用
它是当直接运行 py 文件的时候,它的值是__main__,如果这个 py 文件作为一个模块导入的时候,值是文件名。
此时在 demo.py 文件中只需要加入 if __name__==‘__main__‘
;语句
代码内容为:
_all_=[‘m’,’test’]
m=’yes’
n=’100’
def test():
print(‘我是demo模块里的test方法’)
def foo():
print(‘我是demo模块里的foo方法’)
def division(a,b):
return a / b
if __name__==‘__main__‘;
print(‘demo里的name是:’,__name__)
print(division(4,2))
把 demo 文件作为模块导入 03- 使用自定义模块 .py 文件运行结果:
效果中不在显示 demo 中的内容
在大多数 python 语句中会出现很多次的if __name__==‘__main__‘
;语句,这节课就是来掌握这条语句的使用方法。