首页 > 其他分享 >模块

模块

时间:2022-08-31 14:34:01浏览次数:64  
标签:py fib fibo 名称 模块 import

在编写程序的过程中把所有代码都写到一个脚本中肯定不便于维护和使用。

python有一种方法可以把定义放在一个脚本里,并在其他脚本或解释器的交互式实例中使用他们。

这样的脚本被称为模块。

模块中的定义可以导入到其他模块中。

案例:

在当前目录下创建一个名为fibo.py的文件,文件内容如下:

# fibo.py
# 斐波那契数列 模块

def fib(n):    # 打印斐波那契数列到数n
    a, b = 0, 1
    while a < n:
        print(a, end=' ')
        a, b = b, a+b
    print()

def fib2(n):   # return Fibonacci series up to n
    result = []
    a, b = 0, 1
    while a < n:
        result.append(a)
        a, b = b, a+b
    return result

导入模块

通过关键字import可以在代码中导入写好的模块,语法如下:

import 模块名

现在,再在当前目录下创建一个名为main.py的文件。然后编写如下代码:

# main.py
import fibo

fibo.fib(10)

运行后输出:

0 1 1 2 3 5 8 

语句import fibo会在当前脚本中导入变量fibo,它表示模块fibo,然后通过fibo.fib就可以访问模块fibo中定义好的函数,然后执行。

import语句有一个变体,它可以把模块中的名称(函数,变量,类名)直接导入到当前模块的变量表里,语法如下:

from 模块名 import 名称

修改main.py文件里的代码如下:

# main.py
from fibo import fib, fib2

fib2(10)

运行后输出:

[0, 1, 1, 2, 3, 5, 8]

语句from fibo import fib, fib2,直接将模块fibo中的函数fib,fib2导入到当前模块中,所以在后面的代码中就可以直接通过fibfib2访问模块fibo中对应的函数。

还有一个变体可以导入定义的所有名称,语法如下:

from 模块名 import *

这会导入模块中所有非以下划线开头的名称。通常不建议使用这个功能,因为它在解释器中引入了一组未知的名称,有可能会覆盖你之前定义过的东西,也会导致代码的可读性差。不过在交互式运行时,为了节省打字可以这么用。

有时,需要导入的定义名称可能和当前模块中的定义重名,可以通过下面的变体自定义导入名称:

import 模块名称 as 新名称
from 模块名称 import 名称 as 新名称

例如:

>>> import fibo as fib
>>> fib.fib(10)
0 1 1 2 3 5 8
>>> from fibo import fib as fibonacci
>>> fibonacci(10)
0 1 1 2 3 5 8 

标签:py,fib,fibo,名称,模块,import
From: https://www.cnblogs.com/superwuchaofan/p/16642979.html

相关文章

  • 河北稳控科技使用标准信号检测 VM振弦采集模块测量精度
    河北稳控科技使用标准信号检测VM振弦采集模块测量精度(一) (1)电源1.1VDD引脚电源必须使用LDO稳压或者低纹波线性电源,LDO推荐使用AM1117_3.3V芯片,测试时发现SPX......
  • gradle多模块项目打包依赖拆分
    一、目录结构.├──boogle-common│  ├──build.gradle.kts│  └──src├──boogle-core│  ├──build.gradle.kts│  └──src├──......
  • Python-常用内置模块
    常用内置模块数学计算模块math函数说明ceil(x)返回大于或等于x的最小整数floor(x)返回小于或等于x的最大整数sqrt(x)返回x的平方根pow(x,y)返......
  • 兼容树莓派引脚定义,适配多种模块--米尔百变STM32MP1开发板演示
    大家好,我是米尔的工程师,今天给大家带来一款全新的米尔板卡标杆产品:MYD-YA15XC-T。今天的文章将分成两部分来介绍这块基于STM32MP1处理器开发的板卡。一、百变开发板MYD-Y......
  • Jenkins+SpringCloud(多模块)+Vue项目详细配置
    一、Jenkins安装及所需插件安装   安装过程略。   我这用到工具包括JDK、Git、Maven、NodeJS:可以选择自行在服务器安装,也可以通过Jenkins自动安装,位置在系统......
  • 13模块化编程
    1<!doctypehtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<metaname="viewport"6content="width=device-width,user-sca......
  • python3 常用内建模块
    datetime:处理日期和时间的标准库 获取指定日期和时间 str转换为datetimefromdatetimeimportdatetimecday=datetime.strptime('2015-6-118:19:59','%Y-%m-%d%H:......
  • SAP FICO模块 KS02保存增强校验、KS01新增页签
    1、KS02修改保存增强点:SMOD  COOMKS022、KS01、KS02、KS03新增页签或字段增强:SMOD COOMKS01 1、CI_CSKS​,并在结构体中分配自定义的用户字段,字段名称不要超过1......
  • Modbus485转Profinet网关连接水表模块配置案例
     本案例控制的是Modbus485水表模块。系统主PLC选用西门子CPU,通过Modbus转Profinet网关采集水表模块通讯数据。 1、首先创建新项目文件; 2、导入GSD文件。将小疆......
  • pbootcms百度小程序添加评论模块
    本文使用的小程序模板是之前文章中用到的,这里主要用于记录一下添加评论模块的流程。1:app.json中添加动态库引用"window":{"backgroundTextStyle":"dark",......