自学Python 24 函数和模块开发

Python 函数(四)



在编程语言中,函数的优点之一就是可以实现代码块与主程序的分离。并且还可以进一步将函数存储在被称为模块的独立文件中,再将模块导入主程序中。在Python程序中,可以使用import语句导入并使用其他模块中的代码。


一、导入整个模块文件

在Python程序中,导入模块中的方法有很多种,下面将首先讲解导入整个模块的方法。要想让函数变为是可导入的,需要先创建一个模块。模块式扩展名为“.py”格式的文件,在里面包含了要导入到程序的代码。例如下面的实例,创建了一个被包含导入函数make()的模块,将这个函数单独放在一个程序文件pizz.py中,然后在另外一个独立文件making.py中调用文件pizz.py中的函数make(),在调用时调用整个文件。
实例文件pizz.py的功能是编写函数make(),实现制作披萨的功能,具体实现代码如下所示:

def make(size,*toppings):
    print("\n制作一个" + str(size) +"寸的披萨需要的配料")
    for topping in toppings:
        print("-" + topping)

实例文件making.py的功能是,使用import语句调用外模块文件pizz.py,然后使用文件pizz.py中的函数make()实现制作披萨的功能,具体代码如下:

import pizza
pizza.make(16,'黄油','虾','芝士')
pizza.make(12,'黄油','洋葱')

在上述代码中,第一行让python打开文件pizz.py,并将代码复制到程序中(开发者看不到复制的代码),第2和3行调用模块中的函数,执行结果如下:
在这里插入图片描述

二、只导入指定函数

在Python程序中还可以根据项目的需要只导入模块文件中的特定函数,这种导入方法的语法格式如下:

from module_name import function_name

如果需要从一个文件中导入多个指定的函数,可以使用逗号隔开多个导入函数的名称:

from module_name import function_name1,function_name2,function_name3

示例如下:
文件jiafa.py的功能是编写printinfo():

def printinfo(arg1,*vartuple):
    "打印任何传入的函数"
    print(arg1)
    for var in vartuple:
        print(var)
    return;

文件yong.py的功能是导入文件jiafa.py中的函数printinfo():

from jiafa import printinfo
print("考试项目:")
printinfo("数学","语文",'英语')
print("考试分数:")
printinfo(100,95,98)

上述代码中,只是导入文件jiafa.py中的函数printinfo(),即使文件jiafa.py中还有其他函数,也不会被调用。
在这里插入图片描述

三、使用as设置函数的别名

在Python程序中,如果要从外部模板文件中导入的函数名称可能与程序中现有的名称发生冲突,可以使用关键字“as”设置一个新的别名。借用上面的例子,在文件yong.py中导入文件jiafa.py的函数时,将printinfo()名称改为“mm()”:

from jiafa import printinfo as mm
print("考试项目:")
mm("数学","语文",'英语')
print("考试分数:")
mm(99,90,88)

执行结果如下:
在这里插入图片描述

四、使用as设置模块别名

在Python程序中,除了可以使用关键字“as”给函数设置一个别名,还可以使用关键字“as”给模块文件指定一个别名。依然使用上面的例子,将导入模块文件jiafa.py的别名设置为“kk”。具体代码如下:

import jiafa  as kk
print("考试项目:")
kk.printinfo("数学","语文",'英语')
print("考试分数:")
kk.printinfo(90,96,97)

执行结果如下:
在这里插入图片描述

五、导入所有函数

在Python程序中,可以使用星号运算符“ * ”导入外部模块文件中的所有函数。演示实例如下:

from jiafa  import *
print("考试项目:")
printinfo("数学","语文",'英语')
print("考试分数:")
printinfo(86,90,86)

执行结果如下:
在这里插入图片描述
提示:在Python中,当使用的并非自己编写的大型模块时,最好不要采用导入全部函数,因为如果在模块中有函数名与你的项目中使用的名称一致,就会导致意想不到的结果。而且这种错误往往不好差错。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值