(更新时间)2021年3月26日 python基础知识(模块制作)[通俗易懂]

(更新时间)2021年3月26日 python基础知识(模块制作)[通俗易懂]模块制作<1>定义自己的模块在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。比如有这样一个文件test.py,在test.py中定义了函数addtest.pydefadd(a,b):returna+b<2>调用自己定义的模块那么在其他文件中就可以先importtest,然后通过test.add(a,b)来调用了,当然也可以通过fromtestimportadd来引入main.pyimporttestr

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

模块制作

<1>定义自己的模块

在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。

比如有这样一个文件test.py,在test.py中定义了函数add

test.py

def add(a,b):
    return a+b

<2>调用自己定义的模块

那么在其他文件中就可以先import test,然后通过test.add(a,b)来调用了,当然也可以通过from test import add来引入

main.py

import test

result = test.add(11,22)
print(result)

<3>测试模块

在实际开中,当一个开发人员编写完一个模块后,为了让模块能够在项目中达到想要的效果,这个开发人员会自行在py文件中添加一些测试信息,例如:

test.py

def add(a,b):
    return a+b

# 用来进行测试
ret = add(12,22)
print('int test.py file,,,,12+22=%d'%ret)

如果此时,在其他py文件中引入了此文件的话,想想看,测试的那段代码是否也会执行呢!

main.py

import test

result = test.add(11,22)
print(result)

运行现象:
在这里插入图片描述
至此,可发现test.py中的测试代码,应该是单独执行test.py文件时才应该执行的,不应该是其他的文件中引用而执行

为了解决这个问题,python在执行一个文件时有个变量__name__

直接运行此文件
在这里插入图片描述
在其他文件中import此文件
在这里插入图片描述
总结:

  • 可以根据__name__变量的结果能够判断出,是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码
    在这里插入图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193300.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Base64编码与图片互转工具[通俗易懂]

    Base64编码与图片互转工具[通俗易懂]packagecom.willdas.test;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importja

    2022年6月6日
  • 【Android 应用开发】GitHub 优秀的 Android 开源项目

    【Android 应用开发】GitHub 优秀的 Android 开源项目文章转载自: http://blog.csdn.net/zhixiang2010/article/details/18032871 作者: Elysee2014主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar及其他如Dialog、Toast、Ed

    2022年11月1日
  • 解决Serialized class ** must implement java.io.Serializable问题「建议收藏」

    解决Serialized class ** must implement java.io.Serializable问题「建议收藏」在使用dubbo进行传递实体类时,会报错需要实现序列化问题只需在自己的model实体类里面implementsSerializable即可解决,如下packagecom.pang.back.Model;importlombok.Data;importjava.io.Serializable;@DatapublicclassUserimplementsSeria…

    2022年6月20日
  • java代码生成器,springboot代码生成器—增加更新,查询功能(持续更新)

    java代码生成器,springboot代码生成器—增加更新,查询功能(持续更新)时隔一周多,今天终于抽出时间来更新一波代码生成器,最近公司让我研究rpa,弄得焦头烂额的,话不多说,进入正题。之前有朋友让我讲一下代码生成器的原理,这篇博客就大体描述一下,以后慢慢细致讲解。双击codeMan.exe,众所周知,java做成exe程序很麻烦,在这里我是利用了.net的ikvm插件把jar包直接编译成了exe程序,这个启动界面会连接我的服务器,去检查版本更新,如果有更新就会在…

    2022年6月5日
  • oracle amm和asmm,oracle AMM、ASMM区别以及相关用法

    oracle amm和asmm,oracle AMM、ASMM区别以及相关用法AMM:automaticmemorymanagement自动内存管理手动设置totalmemorysizeforthisinstancemaximummemorysizeforthisinstance数据库自动分配totalsgasizesgacomponentsizesinstancepgasizeindividualpgasizes即让数据库完全管理S…

    2022年6月7日
  • oracle 第一范式,数据库范式之第一范式

    oracle 第一范式,数据库范式之第一范式数据库范式(DatabaseNormalization)设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,还又称完美范式)。首先要明白”范式(NF)”…

    2022年5月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号