python中def main是什么意思_python - 为什么要使用def main()?

2023-11-17

其他人已经回答了,但我想我还有其他的东西需要补充。

main()语句调用if的原因(无特定顺序):

其他语言(如C和Java)具有main()函数,该函数在执行程序时调用。 使用这个if,我们可以让Python像他们一样,这对许多人来说更为熟悉。

代码将更清晰,更易于阅读,更有条理。 (是的,我知道这是主观的)

它可以将main()作为模块的python代码而没有令人讨厌的副作用。

这意味着可以针对该代码运行测试。

这意味着我们可以将该代码导入交互式python shell并测试/调试/运行它。

main()内部的变量是本地变量,而外部变量是全局变量。 这可能会引入一些错误和意外行为。

但是,您不需要编写main()函数并在if语句中调用它。

我自己通常开始编写没有任何功能的小型一次性脚本。 如果脚本变得足够大,或者如果我觉得将所有代码放在函数中会使我受益,那么我重构代码并执行它。 当我编写main()脚本时也会发生这种情况。

即使您将代码放在main函数中,也不需要完全按照它编写代码。 一个整洁的变化可能是:

import sys

def main(argv):

# My code here

pass

if __name__ == "__main__":

main(sys.argv)

这意味着您可以从其他脚本(或交互式shell)调用main()传递自定义参数。 这可能在单元测试或批处理时很有用。 但请记住,上面的代码需要解析argv,因此使用传递已经解析的参数的不同调用可能会更好。

在我编写的面向对象的应用程序中,代码如下所示:

class MyApplication(something):

# My code here

if __name__ == "__main__":

app = MyApplication()

app.run()

所以,随意编写更适合您的代码。:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中def main是什么意思_python - 为什么要使用def main()? 的相关文章

  • Tip of the Week #65: Putting Things in their Place

    Tip of the Week 65 Putting Things in their Place Originally posted as totw 65 on 2013 12 12 By Hyrum Wright hyrum hyrumw
  • 关系数据模型(一)

    声明 最近在准备考试 故整理数据库笔记 关系数据模型 关系 域 笛卡尔积 关系 域D1 D2 Dn上的关系r是笛卡尔积D1x D2 xDn的任意子集 n个域上的关系称为n 元关系 元 又称目或度 关系的性质 1 关系是笛卡尔积的子集 即元组
  • Q-Learning与Deep Q-network

    1 价值迭代 价值迭代方法假设事先知道环境中的所有状态 可以对其进行迭代 并可以存储与他们关联的近似价值 对于状态价值步骤如下 对于动作价值步骤如下 存在的问题 获得优质状态转移动态的估计所需的样本数量 状态空间需要足够小 将问题限制在离散
  • 920. 最优乘车(BFS 流式输入)

    H城是一个旅游胜地 每年都有成千上万的人前来观光 为方便游客 巴士公司在各个旅游景点及宾馆 饭店等地都设置了巴士站并开通了一些单程巴士线路 每条单程巴士线路从某个巴士站出发 依次途经若干个巴士站 最终到达终点巴士站 一名旅客最近到H城旅游
  • 移远EC20模组MQTT连接阿里云平台

    一 实现原理 在开始操作前说一下MQTT的实现的原理 MQTT协议 Message Queuing Telemetry Transport 消息队列遥测传输 是IBM开发的一个即时通讯协议 是为大量计算能力有限 且工作在低带宽 不可靠的网络
  • 使用 gvm 来快速安装或者升级 golang 版本

    gvm 是 golang 的版本管理工具 有点类似于 python 的 pyenv 一 安装 gvm bash lt lt curl s S L https raw githubusercontent com moovweb gvm mas
  • 自然对数e的来历

    e是自然对数的底数 是一个无限不循环小数 其值是2 71828 是这样定义的 当n gt 时 1 1 n n的极限 注 x y表示x的y次方 随着n的增大 底数越来越接近1 而指数趋向无穷大 那结果到底是趋向于1还是无穷大呢 其实 是趋向于
  • win10与Linux虚拟机进行文件共享

    由于工作需要使用到linux虚拟机 为了实现win10与Linux虚拟机进行文件共享 分享教程如下 1 在windows系统中设置文件共享 设置过程参考我之前的文章 局域网内共享文件夹 2 虚拟机设置共享文件夹 1 设置 gt 共享文件夹
  • openGLAPI之glPolygonOffset

    openGL系列文章目录 文章目录 openGL系列文章目录 前言 一 glPolygonOffset官方文档 二 翻译 前言 openGLAPI之glPolygonOffset函数详解 一 glPolygonOffset官方文档 glPo
  • Android Dalvik VM GC options 命令控制参数

    else if strncmp argv i Xgc 5 0 In VM thread there is a register map for marking each stack item s status whether it is a
  • YOLOv3的交通灯检测,ROS下实现交通灯检测一样只需要相应文件夹下面修改之后编译即可

    YOLOv3的交通灯检测 效果 只是需要修改源码image c即可修改如下 这里的0和9就是只检测行人和交通灯 对应的数字设置自己想检测的类型 可以查看coco names文件下 完成修改之后 make clean make j 重新编译即
  • MySQL常用的数据类型

    MySQL的常用数据类型包括 整型 Int TINYINT SMALLINT MEDIUMINT INT BIGINT 浮点型 Float FLOAT DOUBLE DECIMAL 字符串类型 String CHAR VARCHAR TEX
  • SpringBoot项目用 jQuery webcam plugin实现调用摄像头拍照并保存图片

    参考博客 http www voidcn com article p oigngyvb kv html 自定义样式
  • visual studio附加选项/Tc、/Tp、/TC、/TP(指定源文件类型)

    Tc 选项指定 filename 为 C 源文件 即使它没有 c 扩展名 Tp 选项指定 filename 为 C 源文件 即使它没有 cpp 或 cxx 扩展名 选项和 filename 之间的空格是可选的 每个选项指定一个文件 若要指定
  • 多元函数可微性知识点总结

    这节的知识点也挺多 主要就是可微和偏导数存在的关系 偏导数 z f x y z对x或者y的偏导数就是把另一个当做常数求导 还算简单 判断可微性 必要条件 可以写成偏导数都存在 且可以写成 d z f x d
  • 【Matlab】simlink自动生成嵌入式代码配置教程

    1 简介 最近在学习模型开发 相较于普通嵌入式代码开发来说 其能够进行仿真 并且能够使各模块之间的逻辑更加清晰 simlink自动生成代码过程较多 因此记录下来 方便日后参考 2 搭建simlink相关模块 3 进行求解器等相关配置 配置求
  • C++的四种强制转换

    1 static cast 基本等价于隐式转换的一种类型转换运算符 以前是编译器自动隐式转换 static cast可使用于需要明确隐式转换的地方 c 中用static cast用来表示明确的转换 可以用于低风险的转换 整型和浮点型 字符与
  • 量化交易的历史

    学习目标 了解量化交易的发展历史 量化交易全球的发展历史 量化投资的产生 60年代 1969年 爱德华 索普利用他发明的 科学股票市场系统 实际上是一种股票权证定价模型 成立了第一个量化投资基金 索普也被称之为量化投资的鼻祖 量化投资的兴起
  • bWAPP通关记录(A1)

    安装 这里使用的是phpstudy进行搭建的 先下载bWAPP 打开解压之后bWAPP目录下的admin中的settings php 将数据库连接名和密码改为与phpmyadmin相同的 保存 浏览器访问 点击here 点击Login 默认

随机推荐

  • kuka机器人焊接编程入门教程_焊接机器人操作编程与应用教学.pptx

    ABB MOTOMAN FANUC KUKA OTC机器人 第1章 机器人基础知识 第1章 机器人基础知识 第1章 机器人基础知识 第1章 机器人基础知识 第1章 机器人基础知识 第1章 机器人基础知识 第1章 机器人基础知识 第1章 机器
  • 小程序的文件结构

    小程序的文件结构 我们利用微信开发者工具创建一个新的小程序 会有包含一个描述整体程序的app和多个描述各自页面的page 一个小程序的主体部分由三个文件组成 必须放在项目的根目录 gt app js 小程序的主要逻辑判断 gt gt app
  • 重新学防抖debounce和节流throttle,及react hook模式中防抖节流的实现方式和注意事项

    重学节流和防抖 防抖 概念理解 防抖就是指触发事件后在 n 秒内函数只能执行一次 如果在 n 秒内又触发了事件 则会重新计算函数执行时间 举例说明 坐电梯的时候 如果电梯检测到有人进来 触发事件 就会多等待 10 秒 此时如果又有人进来 1
  • 300 倍的性能提升!PieCloudDB Database 优化器「达奇」又出新“招”啦

    随着数字化进程的加快 全球数据量呈指数级增长 对数据库系统的性能提出了巨大的挑战 优化器作为数据库管理系统中的关键技术 对数据库性能和效率具有重要影响 它通过对用户的查询请求进行解析和优化来生成高效的执行计划 进而快速返回查询结果 然而 同
  • 嵌入式Linux——oops:根据oops信息,找到错误的产生位置以及函数的调用关系

    简介 本文主要介绍通过oops信息找到程序中出错位置的方法 并结合自己代码中的错误来讲解如何找到出错位置 同时还会介绍使用栈信息来推到函数间的调用关系 Linux内核 linux 2 6 22 6 所用开发板 JZ2440 V3 S3C24
  • 一、【React基础】React简介及基本使用

    文章目录 1 官网 2 特点 3 相关js库 4 基本使用 4 1 CODE 4 2 Result 用于动态构建用户界面的 JavaScript 库 只关注于视图 由Facebook开源 1 官网 英文官网 https reactjs or
  • 广电用户画像分析之根据用户行为数据进行筛选与标签添加

    在数据处理和分析领域 我们经常需要根据用户的行为数据进行筛选和标签添加 以便更好地理解用户行为和偏好 在本篇博客中 我们将介绍两个示例 展示如何根据用户的收视行为数据和订单信息进行数据处理和分析 前情提要 数据集分析 广电用户画像分析之探索
  • Vue的学习

    一 Vue框架 常用地指令学习 https cn vuejs org 官网地址 概述 前端领域当中有三大框架 都是开发单页面应用的框架 Angular诞生于2009年 是由谷歌创建出来的框架 React诞生于2013年 是由facebook
  • idea无限build解决方案

    点击File Settings Build Excution Deploment Compiler勾上build project automatically
  • 【数据结构】树与二叉树总结(一)

    数据结构 树与二叉树的总结 一 1 AVL树 动态平衡二叉树 树表的查找 2 哈夫曼树 二叉树的应用 3 树 树与二叉树的转换 4 分裂树 5 S K R 注 K为结点 R为关系 一 树 定义 n n gt 0 个结点构成的有限集合 当n
  • SCSI硬盘

    SCSI硬盘即采用SCSI接口的硬盘 它由于性能好 稳定性高 因此在服务器上得到广泛应用 同时其价格也不菲 正因它的价格昂贵 所以在普通PC上很少见到它的踪迹 说到SCSI硬盘必须提到SCSI接口 SCSI是Small Computer S
  • MFC中窗口初始化时OnCreate、OnInitDialog、OnSize、OnPaint的 调用顺序

    执行顺序 以箭头方向 OnCreate gt OnSize gt OnInitDialog gt OnPaint OnCreate 要创建一个窗口 OnSize 用于窗口初始化前的一些参数设定 OnInitDialog 初始化窗口 例如设置
  • Jmeter录制脚本 模拟用户登录操作

    使用Jmeter测试web应用时 通常有两种测试计划 面向请求数的测试 面向场景的测试 模拟用户操作属于面向场景的测试 准备工作 1 1 建立线程组和HTTP请求 在测试计划中新建线程组 线程组中添加一个HTTP请求 并配置 1 2 录制控
  • 最小生成树总结1 prim算法

    最小生成树总结1 prim算法 最小生成树总结2 kurskal算法 文章目录 1 最小生成树问题概述 2 Prim算法流程 3 模板 4 板子题 1 最小生成树问题概述 给定带权节点网络 从中确定一个包含所有节点 n个 n 1条边 所有节
  • 机器学习到底是什么?

    关于机器学习最简单的定义来自于Berkeley所表述的 机器学习是AI的一个分支 它探索了让计算机根据经验提高效率的方法 为了更深刻的理解这一定义 接下来我们将对其进行拆分分析 AI的分支 人工智能是一种能够使得计算机及其系统能够成功完成通
  • MATLAB实现将数据写入到txt文件以及从txt文件中读取数据

    1 将数据写入到txt文件 global n global xm global ym xm 100 ym 100 global A global B n 10 A zeros 1 n B zeros 1 n for i 1 n A 1 i
  • 【Scala】scala ':' or newline expected \u200b

    1 背景 拷贝了网上一段代码 发现报错如下 这个是因为不可见字符 引起的 全局替换一下就好了 参考 IDEA IDEA报错 illegal character U 00A0异常解决
  • C++与C#类型转换例子

    C 部分类型定义 typedef struct SID AND ATTRIBUTES HASH DWORD SidCount PSID AND ATTRIBUTES SidAttr SID HASH ENTRY Hash SID HASH
  • Window11安装Docker Desktop(构建软链接解决Docker自动安装在C盘占用内存问题)

    一 查看电脑是否开启虚拟化 二 配置 Hyper V 三 构建软连接 使Dockor可以不安装在C盘 四 下载安装Dockor 五 配置环境 一 查看电脑是否开启虚拟化 打开设备管理器 gt 性能 gt CPU 查看是否开启虚拟化 若以开启
  • python中def main是什么意思_python - 为什么要使用def main()?

    其他人已经回答了 但我想我还有其他的东西需要补充 main 语句调用if的原因 无特定顺序 其他语言 如C和Java 具有main 函数 该函数在执行程序时调用 使用这个if 我们可以让Python像他们一样 这对许多人来说更为熟悉 代码将