__name__的使用 | 学习笔记

简介: 快速学习__name__的使用

开发者学堂课程【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)) 

结果如下图:

image.png

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))

结果如下图:

image.png

注意:在这里直接运用 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__‘;语句,这节课就是来掌握这条语句的使用方法。

相关文章
|
Java 应用服务中间件 数据库
RocketBot 的使用 | 学习笔记
快速学习 RocketBot 的使用
RocketBot 的使用 | 学习笔记
|
Kubernetes Cloud Native Linux
K8S 初识_K8S 初识 | 学习笔记
快速学习 K8S 初识_K8S 初识
136 0
K8S 初识_K8S 初识 | 学习笔记
|
自然语言处理 前端开发 Java
TermQuery|学习笔记
快速学习 TermQuery。
129 0
TermQuery|学习笔记
|
分布式计算 算法 Hadoop
fuzzyQuery | 学习笔记
快速学习 fuzzyQuery
fuzzyQuery | 学习笔记
|
JSON 分布式计算 Hadoop
boolQuery | 学习笔记
快速学习 boolQuery
boolQuery | 学习笔记
|
消息中间件 缓存 NoSQL
总结| 学习笔记
快速学习总结。
|
人工智能 算法 开发者
SDV 要解决的问题 | 学习笔记
快速学习 SDV 要解决的问题
|
开发者
SearchType 详解 | 学习笔记
快速学习 SearchType 详解
|
存储 开发者 Python
练习3|学习笔记
快速学习练习3
|
XML 数据格式
学习笔记1
学习笔记1
110 0