在python的代码里我们经常会看到这样两个片段,__name__和__main__那么代表什么意思呢?

在这之前,我们先来了解下python文件的调用方法,主要有两种

1,直接在cmd或shell终端调用xxx.py文件

2,导入别的python文件里做为一个工具类调用

懂了上面这两个方式后,我们在理解这两个属性的作用就好理解了,其实__name__是每个模块或类里面的内置属性,__main__代表直接运行这个py文件时的标记,如果不是__main__那就说明,这个py文件,是导入到别的python代码里,昨晚工具类使用的,下面看散仙写如下的例子:

这个是测试的python文件b.py代码

def say():

print("say")

def b():

print("B")

def c():

print("C")

def d():

print("D")

if __name__=="__main__":

print("我是直接运行的")

b();

else:

print("不是直接运行!")

if __name__=="b":

print("导入模块调用了")

else:

print("其他模块")

在cmd下直接运行,打印结果如下:

在别的python代码里调用打印如下:

D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/main方法测试/p.py

不是直接运行!

其他模块

Process finished with exit code 0

下面看下如何在python的里面,测试这个区别:

class Person:

def run(self):

print("我在奔跑!")

def swimming(self):

print("我在游泳")

if __name__=="__main__":

print("Person里条用")

else:

print("oh no person!")

class Model:

def say(self):

print("我是一个model")

def p(self):

print("Model")

if __name__=="__main__":

print("Model里条用")

else:

print("oh no model!")

if __name__ =="__main__":

p=Person();

p.run();

else:

x=Model();

x.say();

打印的效果如下:

D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/main方法测试/p.py

不是直接运行!

其他模块

oh no person!

oh no model!

我是一个model

Process finished with exit code 0

通过上面这个例子,我们能够看出来,在一个py文件里的多个类也是可以定义自己的__name__和__main__如果我们没有明确指定是那个类的方法,那么执行这个文件导入模块时,就会把这个py下所有定义的类__name和__main__都执行一遍。

大小: 18.6 KB

分享到:

2014-09-03 16:59

浏览 1874

评论

python3.4.4怎么打代码_Python3.4里面__name和__main__的作用相关推荐

  1. python3颜色代码_python3中布局背景颜色代码分析

    我们想要给某个模块着重突出,以便引起大家注意的时候,通常给那个模块的背景颜色换亮一点.这种情况的操作多见于我们想要突出表格中的某个数据,或是某一项的名称. 在python3中设置布局背景颜色需要通过代 ...

  2. python多线程爬虫实例-Python3多线程爬虫实例讲解代码

    多线程概述 多线程使得程序内部可以分出多个线程来做多件事情,充分利用CPU空闲时间,提升处理效率.python提供了两个模块来实现多线程thread 和threading ,thread 有一些缺点, ...

  3. python3网络爬虫代码_《Python3网络爬虫开发实战代码》

    <Python3网络爬虫开发实战代码>\appium\.git\COMMIT_EDITMSG, 7 , 2017-08-15 <Python3网络爬虫开发实战代码>\appiu ...

  4. 在python3.x下使用如下代码: import cPickle as pk 报错

    在python3.x下使用如下代码: import cPickle as pk 会报如下错误: ImportError: No module named 'cPickle' 原因:python2有cP ...

  5. 低代码平台在ERP软件开发中的作用

    很多人认为低代码开发平台的出现颠覆了传统的软件开发模式,对软件开发行业造成冲击,其实低代码开发平台的出现只是提高了软件开发的效率,并不是要颠覆软件开发的模式.低代码平台在ERP软件开发中的作用还是比较 ...

  6. python3爬虫小型代码_python3简单爬虫实现代码

    分享一个python实现的网络爬虫代码.转自:http://www.cnblogs.com/yes123/p/3761388.html 写了个python3的.代码非常简单就不解释了,直接贴代码. # ...

  7. python3打开文件的代码_Python3 对文件操作

    计算机文件 在计算机系统中,以硬盘为载体存储在计算机上的信息集合称为文件.文件可以是文本文档.图片.声音.程序等多种类型.在编程时经常要对文件进行读写等操作, 从程序员的视角可以把文件理解为是连续的字 ...

  8. python3图片转代码_python3图片转换二进制存入mysql示例代码

    python3图片转换二进制存入mysql示例代码 发布于 2014-09-29 18:00:01 | 198 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面 ...

  9. python3简单代码_python3实现简单汉诺塔的代码教程

    python3实现简单汉诺塔的代码教程 #!/usr/bin/env python3 #_*_*_ coding: utf-8 _*_*_ #汉诺塔 # def hannuota(n,N,M): # ...

最新文章

  1. ssh tunnel 上网
  2. BZOJ 1977: [BeiJing2010组队]次小生成树(Kruskal+树上倍增)
  3. JAVA自动补全插件
  4. P3168-[CQOI2015]任务查询系统【主席树】
  5. [js] pjax和ajax的区别是什么?
  6. @SessionAttributes
  7. matlab 平行,MATLAB判断两条直线平行
  8. 数据类型转换——Python
  9. python 删除pdf页面_使用PyPDF2库对pdf文件进行指定页面删除操作
  10. STM32F103C8T6最小系统原理图和PCB
  11. 2021四川紧急选调/国考备考策略----申论/行测(2020.8.22号开始)
  12. 如何保养可让自己年轻10岁?/经常熬夜的人要怎样保养自己的身体?
  13. android 设置录像帧率,华为手机设置相机录像帧率的方法
  14. 【习题5】用Python完成新建文档写古诗+复制
  15. 深入了解JVM之线上问题排查及工具使用(五)
  16. 电脑键盘各键名称及功能是什么
  17. 0002数学建模的重要意义
  18. java时钟课程设计,Java课程设计-时钟图形模拟
  19. Ubuntu关于串口的操作(查看串口信息、串口助手、串口权限)
  20. 【C语言】日期时间转秒数

热门文章

  1. Spring Boot 2.0 多图片上传加回显
  2. 每日一皮:公司来了个程序员鼓励师...
  3. 强力攻城狮的职位要求...
  4. Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
  5. mysql的索引优化_MySQL索引优化与分析(重要)
  6. 抛出运行时异常的目的_「JAVA」运行时异常、编译时异常、自定义异常,通过案例实践转译和异常链...
  7. el search 查询排序
  8. No module named 'mxnet.gluon'
  9. Ubuntu 16.04 安装 miniconda
  10. opencv findContours 崩溃CrtDbgBreak