返回顶部
首页 > 资讯 > 后端开发 > Python >Python 入口函数(菜鸟入门)
  • 496
分享到

Python 入口函数(菜鸟入门)

菜鸟函数入门 2023-01-31 08:01:02 496人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

最近在组内研究专项项目,其中的一个现有工具是用 python 开发的,我的目标是对这款工具的流程进行优化。虽然可以找到对应的开发者了解现有流程,然后结合我的研究提出优化方案,最后让 TA 去编码实现。但是程序员心理使然,什么东


最近在组内研究专项项目,其中的一个现有工具是用 python 开发的,我的目标是对这款工具的流程进行优化。虽然可以找到对应的开发者了解现有流程,然后结合我的研究提出优化方案,最后让 TA 去编码实现。但是程序员心理使然,什么东西都想自己琢磨明白,于是开启了摸索历程。

上网搜索资料,下载了 PyCharm 开发工具,进行了一些环境配置,于是乎就开工了。由于之前没有接触过 Python 语言,打开代码文件夹就蒙圈了,只见一大堆 .py 文件,不知道从哪里入手。本人 C# 出生,写过少许 C/C++,所以一直想着有个类似 Main() 函数的东西是整个程序的入口。然而,查遍了整个目录,没有找到任何线索,接下来就开始各种捣鼓。

需要说明的是,本文仅是一只 Python 菜鸟的学习笔记,并不一定正确或完整,欢迎大家斧正。
每每接触新工具或新语言,都有一种莫名的欣喜,乐于用旧知识来推敲,故而载之。

顺序执行

Python 世界中,每一个 .py 文件就是一个模块,在控制台中输入文件名即可调用该模块。
模块有些类似于 批处理文件(.bat) ,其中的语句是按顺序执行的。
这点和我最初的想象不一致,总想着它和 C# 等语言一样,文件中应该由 class 来组织,实则不然。

首先,在 D盘 根目录创建一个名 Test1.py 的文件,内容如下:

print("Test1 First")
print("Test1 Second")

然后,转到控制台,将目录切换到 D盘 ,启动 Test1.py 模块,结果如下:

D:\>python Test1.py
Test1 First
Test1 Second

嗯,不错,完全符合预期,再试一下模块间调用。
D盘 中创建 Test2.py 文件,在其中调用 Test1.py 模块:

import Test1

print("Test2 First")
print("Test2 Second")

在控制台中启动 Test2.py ,输出结果:

D:\>python Test2.py
Test1 First
Test1 Second
Test2 First
Test2 Second

可以理解的是,在 Test2.py 文件中, import Test1 语句在前面,所以在导入 Test1 模块时便执行了其中的语句,因此 Test1 中的输出在前面。
如果将 import Test1 放在后面, Test1 的输出也会出现在后面:

print("Test2 First")
print("Test2 Second")

import Test1
D:\>python Test2.py
Test2 First
Test2 Second
Test1 First
Test1 Second

函数定义

模块中的代码能否更加灵活?除了按顺序执行,还可以根据需要调用,就像 C# 语言中的函那样。
上文中的 Print 应该就是一个内建函数,查资料,找到 Pyhton 中函数的定义:

def 函数名(参数列表):
    函数体

赶紧试一下,在 Test1.py 中定义一个 SayHello 函数:

print("Test1 First")
print("Test1 Second")

def SayHello():
	print("Hello World")

SayHello()
print("Test1 Third")

输出结果:

D:\>python Test1.py
Test1 First
Test1 Second
Hello World
Test1 Third

嗯,符合预期,没毛病,按顺序执行。
如果只是定义 SayHello() 函数,而没有调用的话,是不会有 Hello World 一行输出的。

接下来,尝试一下模块间函数的调用,修改 Test2.py 文件:

import Test1

print("Test2 First")
print("Test2 Second")

Test1.SayHello()

输出如下:

D:\>python Test2.py
Test1 First
Test1 Second
Hello World
Test1 Third
Test2 First
Test2 Second
Hello World

哈哈,对的,对的,最后一行的 Hello World 即是 Test2.py 中的 Test1.SayHello() 语句输出的。
至于前面第三行的 Hello World 嘛,那是 import Test1 时由 Test1 模块输出的。

__main__

了解了函数的定义及模块间的调用,随之而来的疑惑是,程序\模块 的入口在哪里。
搜索了一下资料,找到了 __name__ 属性。先来
测试一段代码,修改 Test1.py 文件:

def SayHello():
	print("Hello World")
	
def SayBye():
	print("Bye World")


SayHello()

if(__name__=="__main__"):
	print("Main")

SayBye()

在控制台中直接启动 Test1.py

D:\>python Test1.py
Hello World
Main
Bye World

嗯,还好理解,按顺序执行的,且满足了 if(__name__=="__main__") 条件,所以输出了 Main
且慢,换一种方式,通过 Test2.py 间接调用 Test1.py 试试,先修改 Test2.py 文件:

import Test1

print("Test2 First")
print("Test2 Second")

然后启动 Test2.py 文件来看看结果:

D:\>python Test2.py
Hello World
Bye World
Test2 First
Test2 Second

纳尼,怎么没有输出 Mani 呢?嗯,有点意思,找到 菜鸟教程 的解释:

每个模块都有一个 `__name__` 属性,当其值是 `__main__` 时,表明该模块自身在运行,否则是被引入

这个 __name__ 属性还好理解,模块的保留字段(属性),但是怎么理解这个 __main__ 呢?
这里的 __main__ 可能可以理解为程序的入口函数,模块直接被入口函数调用,则其 __name__ 属性值为 __main__,否则为 模块文件名

def SayHello():
	print("Hello World")
	
def SayBye():
	print("Bye World")


SayHello()

if(__name__=="__main__"):
	print("Main")
else:
	print(__name__)

SayBye()
D:\>python Test2.py
Hello World
Test1
Bye World
Test2 First
Test2 Second

总结

本文讲了 Python 模块的一些基本特性,涉及到的知识非常粗浅,仅为记录个人的学习过程。
每每接触新工具或新语言,都有一种莫名的欣喜,乐于用旧知识来推敲,故而载之。

最后,引用 菜鸟教程 关于 模块 的一些重要解释:

  • 模块除了方法定义,还可以包括可执行的代码。这些代码一般用来初始化这个模块。
  • 一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。
  • 模块是可以导入其他模块的。在一个模块的最前面使用 import 来导入一个模块,当然这只是一个惯例,而不是强制的。

--结束END--

本文标题: Python 入口函数(菜鸟入门)

本文链接: https://lsjlt.com/news/192742.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python 入口函数(菜鸟入门)
    最近在组内研究专项项目,其中的一个现有工具是用 Python 开发的,我的目标是对这款工具的流程进行优化。虽然可以找到对应的开发者了解现有流程,然后结合我的研究提出优化方案,最后让 TA 去编码实现。但是程序员心理使然,什么东...
    99+
    2023-01-31
    菜鸟 函数 入门
  • 《Linux菜鸟入门2》mariadb服务
    学会使用mariadb数据库1.yum search mariadb            &n...
    99+
    2024-04-02
  • Python入门-函数
    < 返回索引页 函数 函数定义 返回值 函数的调用 函数的参数 顺序参数 参数的默认值 可变参数 关键字参数 参数的组合 参数的专递 函数作用域 内建函数 匿名函数 函数注解 总结 练习 参考 <!...
    99+
    2023-01-31
    函数 入门 Python
  • Python从菜鸟到高手(4):导入Py
      在Python代码中导入模块需要使用import语句,语法结构如下: import module_name   引用模块中函数的语法如下: module_name.function_name   如果在Python程序中大量使用模块中的...
    99+
    2023-01-31
    菜鸟 高手 Python
  • Xdebug 入门指南:菜鸟秒变 PHP 调试大师
    Xdebug 是一个强大的 PHP 调试扩展,可让您深入了解代码的执行情况,从而快速高效地解决问题。本指南将带领您从头了解 Xdebug 的安装和使用,让您成为一名 PHP 调试大师。 安装 Xdebug 下载 Xdebug 扩展,与您...
    99+
    2024-03-13
    Xdebug扩展
  • Python爬虫入门教程第七讲: 蜂鸟网
    蜂鸟网图片--简介 今天玩点新鲜的,使用一个新库 aiohttp ,利用它提高咱爬虫的爬取速度。 安装模块常规套路 pip install aiohttp 运行之后等待,安装完毕,想要深造,那么官方文档必备 :https://aioht...
    99+
    2023-01-31
    爬虫 入门教程 第七讲
  • Python入门之三角函数atan2()函数详解
    描述 atan2() 返回给定的 X 及 Y 坐标值的反正切值。 语法 以下是 atan2() 方法的语法: import math math.atan2(y, x) 注意:atan2()是不能...
    99+
    2022-06-04
    函数 详解 入门
  • Python编程入门指南之函数
    目录Python编程:函数定义和调用函数向函数传递信息传递实参:位置实参传递实参:关键字实参传递实参:默认值传递列表禁止函数修改列表传递任意数量实参返回值返回简单值让实参可选返回字典...
    99+
    2024-04-02
  • Oracle分析函数入门
    Oracle分析函数入门...
    99+
    2020-12-22
    Oracle分析函数入门
  • ​​​​​​​Python 入门学习之函数式编程
    目录前言把函数作为对象把对象作为函数数据结构内的函数把函数作为参数和返回值嵌套函数单表达式函数(Lambda 表达式)Map、Filter 和 ReduceMapFilterRedu...
    99+
    2024-04-02
  • 从入门到精通:Python 函数教程
    Python 是一种非常流行的编程语言,其灵活性和易读性使其成为许多开发者的首选语言。在 Python 中,函数是一种非常重要的编程概念,可以帮助我们将代码分解为可重用的部分。本文将介绍 Python 函数的基础知识和高级概念,从入门到精...
    99+
    2023-06-29
    函数 教程 关键字
  • Node.js Sequelize 库:深入浅出,从菜鸟到大师
    ...
    99+
    2024-04-02
  • Python入门教程(十九)python的函数详解
    目录创建函数调用函数参数默认参数值以 List 传参返回值关键字参数任意参数pass 语句递归函数是一种仅在调用时运行的代码块。 可以将数据(称为参数)传递到函数中。 函数可以把数据...
    99+
    2023-05-17
    python 函数 python函数的定义
  • Python入门之三角函数sin()函数实例详解
    描述 sin()返回的x弧度的正弦值。 语法 以下是sin()方法的语法: importmath math.sin(x) 注意:sin()是不能直接访问的,需要导入math模块,然后通过math静态...
    99+
    2022-06-04
    函数 详解 实例
  • Python入门之三角函数tan()函数实例详解
    描述 tan() 返回x弧度的正弦值。 语法 以下是 tan() 方法的语法: import math math.tan(x) 注意:tan()是不能直接访问的,需要导入 math 模块,然后通...
    99+
    2022-06-04
    函数 详解 实例
  • Python入门
    ---恢复内容开始---   在这章中,我了解到了计算机的概念、Python的发展史以及Python语言的版本之间的区别,并自己安装了Python的编辑器。通过安装Python编辑器,我认识到安装软件也可以在官网上安装。     在第...
    99+
    2023-01-30
    入门 Python
  • python 入门
    1、 python 脚本的编写   文件:hello.py   第一步:在第一行添加  #!/usr/bin/env python #!/usr/bin/env python3 print("hello world");    第二步...
    99+
    2023-01-30
    入门 python
  • 「数据挖掘入门系列」Python快速入门
    Python环境搭建本次入门系列将使用Python作为开发语言。要使用Python语言,我们先来搭建Python开发平台。我们将基于Python 2.7版本、以及Python的开发发行版本Anaconda版本来开发。Anacond...
    99+
    2021-03-07
    「数据挖掘入门系列」Python快速入门
  • Python入门之三角函数全解【收藏】
    Python中的三角函数位于math模块内。 引入模块: import math 输出pi: import math print(math.pi) 得:3.141592653589793 math模块内还...
    99+
    2022-06-04
    函数 入门 收藏
  • oracle菜鸟学习之 分析函数-排序
    oracle菜鸟学习之 分析函数-排序 排序函数 1.row_number:返回连续的排序,无论值是否相等2.rank:具有相等值得行排序相同,序数值随后跳跃3.dense_rank:具有相等值得行排序相同...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作