Python3.4里面__name和__main__的作用

2024-05-15 04:18
文章标签 作用 main 里面 python3.4

本文主要是介绍Python3.4里面__name和__main__的作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[b][color=green][size=large]在python的代码里我们经常会看到这样两个片段,__name__和__main__那么代表什么意思呢?

在这之前,我们先来了解下python文件的调用方法,主要有两种
1,直接在cmd或shell终端调用xxx.py文件
2,导入别的python文件里做为一个工具类调用

懂了上面这两个方式后,我们在理解这两个属性的作用就好理解了,其实__name__是每个模块或类里面的内置属性,__main__代表直接运行这个py文件时的标记,如果不是__main__那就说明,这个py文件,是导入到别的python代码里,昨晚工具类使用的,下面看散仙写如下的例子:
这个是测试的python文件b.py代码
[/size][/color][/b]
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("其他模块")



[b][color=olive][size=large]在cmd下直接运行,打印结果如下:[/size][/color][/b]

[img]http://dl2.iteye.com/upload/attachment/0100/8195/f556ec1e-5863-3c38-a7e8-5f003e55e1fb.jpg[/img]


[b][color=olive][size=large]在别的python代码里调用打印如下:[/size][/color][/b]
D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/main方法测试/p.py
不是直接运行!
其他模块

Process finished with exit code 0



[b][color=olive][size=large]下面看下如何在python的里面,测试这个区别:[/size][/color][/b]



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


[b][color=olive][size=large]打印的效果如下:[/size][/color][/b]
D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/main方法测试/p.py
不是直接运行!
其他模块
oh no person!
oh no model!
我是一个model

Process finished with exit code 0



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

这篇关于Python3.4里面__name和__main__的作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/990781

相关文章

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

Spring 中 BeanFactoryPostProcessor 的作用和示例源码分析

《Spring中BeanFactoryPostProcessor的作用和示例源码分析》Spring的BeanFactoryPostProcessor是容器初始化的扩展接口,允许在Bean实例化前... 目录一、概览1. 核心定位2. 核心功能详解3. 关键特性二、Spring 内置的 BeanFactory

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干