Python学习-9.1 程序界面-main函数的作用

news2024/12/23 10:43:31

main函数的两种使用功能
情况1:直接执行本py代码文件时,把包含的代码块视为脚本代码顺序执行;
情况2:当本py代码文件作为其他代码import对象时,不执行如下被包含的代码

下面可以通过程序来更好地了解main函数的作用,这里我们编写两段程序进行说明
①main_function.py

import sys  # 标准库system
from PyQt5.QtWidgets import QApplication, QWidget


class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.resize(350, 350)
        self.show()

print('__name__ value: ', __name__)

if __name__ == "__main__":
	print('this message is from main function')
    app = QApplication(sys.argv)  # sys.argv是一个从程序外部获取参数的桥梁
    ex = Example()
    sys.exit(app.exec_())

运行main_function.py文件
运行结果:

__name__ value:  __main__
this message is from main function

并输出窗口
在这里插入图片描述
可以看到此时__name__的值是__main__,并运行了if __name__ == "__main__":后面的代码。

②main_module.py

import main_function#引入main_function.py文件
import sys
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication(sys.argv)  # sys.argv是一个从程序外部获取参数的桥梁
b = main_function.Example()
sys.exit(app.exec_())

运行main_module.py文件
运行结果:

__name__ value:  main_function

并输出窗口
在这里插入图片描述
可以看到此时__name__的值是main_function,并且并未运行main_function.py文件中if __name__ == "__main__":后面的代码。

对比两段程序运行结果可发现,当直接运行包含main函数的程序时,main函数会被执行,同时程序的__name__变量值为'__main__'

当包含有main函数的程序被作为module被import时,该module程序(main_function.py)对应的__name__变量值为该module对应的函数名称,因此该module程序(main_function.py)中的main函数不会被执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/100692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java-函数式编程浅谈

了解函数式编程的实际应用场景以及优点。 文章目录什么是函数式编程函数式编程的使用原理解析什么是函数式编程 以数学中的函数作为切入点,只关注参数之间的运算满足某种规则,例如zxy。 那么如何体现在编程中呢,熟知的function定义可以作为…

使用dompdf/dompdf实现生成pdf文件

一:dompdf/dompdf地址 github:https://github.com/dompdf/dompdf packagist:http://packagist.p2hp.com/packages/dompdf/dompdf 二:dompdf/dompdf安装 composer require dompdf/dompdf 三:dompdf/dompdf简单实例…

20221218-19英语学习

今日新词: wit n.智力; 头脑; 理解力; 风趣; 风趣的话语; 智者; 才子 alcohol n.酒精, 乙醇, 含酒精饮料 pub n.酒吧, 酒馆 instructor n.教员;教师 granted adv.(表示肯定属实,然后再作另一番表述)不错&#xff…

左神:高级进阶班4

1.让N个人过河所需最少船​编辑 2.最长回文子序列 3.最少添加字符让字符串变回文串​编辑 4.回文子串的最少切割次数 5.移除字符使字符串变回文串的方案数​编辑 1.让N个人过河所需最少船 思路:1.排序数组,用基数排序(元素(体…

计算机毕设Python+Vue学生信息管理系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

推特群推营销解读

推特群推王发现,许多品牌使用社交媒体作为提供更好客户支持的一种渠道。使用社交媒体可以实时响应客户的需求。通过电子邮件获取品牌有时可能需要长达48小时。但是,通常在社交媒体上回应的时间要快得多。客户将通过你的品牌发推文,你将在手机…

被动与主动信息收集 | 系统性学习 | 无知的我费曼笔记

文章目录信息收集-被动信息收集介绍收集手段收集内容信息用途信息收集-域名解析过程以手段域名解析过程信息收集 DNS**DNS 信息收集-NSLOOKUP****DNS 信息收集-DIG****查询网站的域名注册信息和备案信息**信息收集-被动信息收集手段大全**使用 Maltego 收集子域名信息**子域名介…

【论文简述】PatchmatchNet: Learned Multi-View Patchmatch Stereo(CVPR 2021)

一、论文简述 1. 第一作者:Fangjinhua Wang 2. 发表年份:2021 3. 发表期刊:CVPR 4. 关键词:MVS、深度学习、Patchmatch、自适应、迭代优化 5. 探索动机:可扩展性、时间、内存占用等效率问题依然没有解决。 While…

【电气安全】关于医疗专用隔离电源系统在医院配电系统中的应用

【摘要】 根据医疗场所分类说明医院尤其是 2 类 医疗场所的接地方案,分析医疗场所自动切断电源措 施,提出校验医疗 IT 系统配出回路长度;说明 RCD、RCM、IMD、IFLS 等的用途和范围;就应急医 院 2 类场所的配电方案进行探讨。 【…

JavaScript刷LeetCode拿offer-双指针技巧(上)

一、前言 一般情况下,遍历数组(或者字符串)操作,都是采用单指针从前往后或者从后往前依次访问数组(或者字符串)中的元素。 而对于以下情况,只采用单指针处理,则会徒增时间复杂度和…

统计学习方法 | 概论

一.简介 统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科 1.统计学习方法的步骤 ①得到一个有限的训练数据集合 ②确定学习模型的集合(模型) ③确定模型选择的准则(策略) ④实现求解…

Python的安装与配置(图文教程)

安装Python 想要进行Python开发,首先需要下载和配置Python解释器。 下载Python 访问Python官网: https://www.python.org/点击downloads按钮,在下拉框中选择系统类型(windows/Mac OS/Linux等)选择下载最新版本的Python安装Python 双击下载好的Python…

五款几乎没人知道的小众软件,按需下载

分享是一种神奇的东西,它使快乐增大,它使悲伤减小,坚持分享一些好用的软件给大家。 1.开源分享工具——ShareX ShareX 是一款 Windows 上开源的截图、文件共享和生产力工具,它是一款功能非常强大的分享工具,只要是免…

【算法】可解释机器学习-ZFNet(Datawhale)

可解释机器学习-ZFNetZFNet算法介绍:AlexNet的提出使得大型卷积网络开始变得流行起来,但是人们对于CNN网络究竟为什么能表现这么好,以及怎么样能变得更好尚不清楚。 因此为了解决上述两个问题,ZFNet提出了一种可视化技术&#xff…

如何治理谐波问题?——有源滤波器

安科瑞 华楠 一、谐波的定义 任何一种周期性非正弦波形都可以看成是由若干种频率不同的正弦波合成的,其中频率为工频的波形我们称为基波,大于1 整数倍基波频率的正弦波分量称为谐波。 总谐波畸变由不同频率的分次谐波合成,各次谐波频率与基…

asp写的百度ocr识别文字-通用文字识别(高精度版)源码下载

今天接到一个客户需求,需要用ASP写一个百度OCR文字识别代码,他的程序都是用ASP写的,所以我们也需要用ASP给他实现百度OCR文字识别,我们在百度AI网站上启用了通用文字识别高精度版,利用高精度板来实现它的业务需求。在上…

【C++】泛型编程 _函数模板和类模板的基本使用

1.泛型编程 如何实现一个通用的交换函数?这在C语言中是无法实现的,但是C却可以。 C语言一次只能实现一个类型的交换: void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(double& left, …

计算机毕设Python+Vue学生信息管理系统 (程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

关于小程序订单中心页设置的公告

为进一步规范小程序交易生态、提升用户购物体验、满足用户在有交易的小程序中便捷查看订单信息的诉求,自2022年12月31日起,对于有“选择商品/服务-下单-支付”功能的小程序,需按照平台制定的规范,在小程序内设置订单中心页。 开发…

创建DataFrame()对象--Pandas

1. DataFrame DateFrame对象是Pandas最常用的数据结构,是由不同类型的列组成的二维数据表结构,类似于EXCEL表,语法格式如下: pandas.DataFrame(dataNone, indexNone, columnsNone, dtypeNone, copyNone)1.1 函数参数:data 参数…