python模块

在python中,可以将函数存储在称为模块的独立文件中,再将模块导入到主程序之中,从而隐藏程序代码的细节,将重点放在高层逻辑上。

本文目录

  • 1 创建模块
  • 2 导入模块
  • 3 使用模块

创建模块

将一个或多个函数放在一个独立的文件中,这个文件就成了一个模块。文件名就是模块名,后缀名是.py。比如模块sum_up的文件名就是sum_up.py

现在让我们创建三个模块:

第一个模块是say_something,下面是say_something.py文件的内容:

def say_hello ():
    """显示欢迎信息"""
    print ("你好!我能计算几个数字之和!")
    username = input ("你的名字是? ")
    print ("欢迎, " + username + ". 现在开始吧!")def say_result (sum_num):
    """输出计算结果"""
    print ('它们的和是: ' + str(sum_num))def say_bye ():
    """显示结束信息"""
    print ('感谢您的参与,再见!')

第二个模块是get_list,下面是get_list.py文件的内容:

def get_numbers_str_list ():
    """得到用户输入的字符串列表"""
    numbers_str =  input ("请输入您的数字,用空格分割: ")
    numbers_str = numbers_str.strip()
    numbers_str_list = numbers_str.split()
    return numbers_str_listdef get_numbers_list (numbers_str_list):
    """将字符串列表转化成数字列表"""
    numbers_list = list()
    for number in numbers_str_list:
        try:
            number = float (number)
        except:
            print ('您输入的不是数字, ' + number)
            exit ()
        numbers_list.append(number)
    return numbers_list     # 返回了列表

最后一个是sum_up模块,下面是sum_up.py文件的内容:

def sum_up (numbers):
    """求和"""
    count = 0
    count = sum (numbers)
    return count    # 返回了数字

导入模块

要在其他文件中使用模块,需要将其导入:

import say_something

这个例子导入了say_something模块。

如果只导入某个模块中特定的函数,可以像下面这样:

from say_something import say_hello()

这个例子从say_something模块中导入了say_hello()函数(这意味着不能使用模块中其他函数)。

可以为模块或者函数起一个别名:

# get_list模块的别名为glimport get_list as gl# say_something模块中say_hello()函数的别名是shfrom say_something import say_hello as sh

使用模块

如果按模块导入,则需要使用模块名.函数名()的格式调用函数:

import say_something as ss
ss.say_hello()

如果只导入了特定的函数,则可直接使用函数:

from say_something import say_hello as sh
sh()

下面我们实现程序的主体逻辑:

import get_list as glimport say_something as ssimport sum_up as su

ss.say_hello()numbers_str_list = gl.get_numbers_str_list()numbers_list = gl.get_numbers_list (numbers_str_list)sum_of_numbers = su.sum_up (numbers_list)ss.say_result (sum_of_numbers)ss.say_bye()

程序执行如下:

$ python sum_numbers.py 
你好!我能计算几个数字之和!
你的名字是? mwang
欢迎, mwang. 现在开始吧!
请输入您的数字,用空格分割: 2.2 4.5 6.7
它们的和是: 13.4
感谢您的参与,再见!

原文发布于微信公众号 - mwangblog(mwangblog)

原文发表时间:2018-03-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏闪电gogogo的专栏

Python初学——pickle & set

pickle 存放数据 将数据保存为文件是永久保存的唯一方式,而文档内部是以字符串形式进行存放的,如果我们需要保存的是一个包含很多数据甚至是类的实例化的复杂的列...

2295
来自专栏Deep learning进阶路

C++随记(九)---名称空间

C++随记(九)---名称空间 C++中,名称可以是变量、函数、结构、类等等,项目增大会使得名称冲突的可能性增大,人类可用的单词数太少,并且不同的人写的程序不可...

1860
来自专栏北京马哥教育

14个实战案例带你了解Linux的‘sort’命令

云豆贴心提醒,本文阅读时间7分钟 sort是什么 Sort是用于对单个或多个文本文件内容进行排序的Linux程序。 Sort命令以空格作为字段分隔符,将一行...

3864
来自专栏magicsoar

C++内存布局(1)-让new出的两个变量在堆上的地址连续

大家都知道栈的地址按照从高到低的顺序增长的, 而堆的地址是按照从底到高的顺序增长的。 int *n1 = new int(1); int *n2 = new i...

2099
来自专栏DannyHoo的专栏

block和代理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

1483
来自专栏知识分享

16-GPRS(Air202)关于多个文件中的变量调用和定时器

大家有没有看这篇 https://www.cnblogs.com/yangfengwu/p/8965054.html

1122
来自专栏决胜机器学习

Redis专题(四) ——Redis排序、消息队列、优化存储

Redis专题(四) ——Redis排序、消息队列、优化存储 (原创内容,转载请注明来源,谢谢) 一、排序 1、命令 SORTkey [A...

6188
来自专栏杨建荣的学习笔记

Python基础之os和数据结构

今天总结了下Python的基础,发现还是有很多基础需要巩固,直接把学习的内容放上来。 >>> import os 得到当前的所在的路径 >>> os.getcw...

3576
来自专栏Linyb极客之路

并发编程之volatile关键字

一、Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。 Java内存模型规定了所有的变量都存储在主内存中...

3595
来自专栏大内老A

WCF服务端运行时架构体系详解[续篇]

终结点分发器在自己的运行时中对请求消息的处理最终肯定体现在相应操作的执行。如果从服务描述的角度来看,操作是一个OperationDescription对象。而服...

1926

扫码关注云+社区

领取腾讯云代金券