博客
关于我
07-2 Python模块和命名空间
阅读量:798 次
发布时间:2023-04-02

本文共 2521 字,大约阅读时间需要 8 分钟。

Python模块与命名空间基础入门

模块概念与使用方法

模块是Python中最基本的代码组织单元,通常以.py文件形式存在。一个模块可以包含多个变量、函数和类,可以被其他程序或脚本引入使用。以下是模块的核心概念和使用方法。

模块的定义

模块通过标准的Python脚本文件实现,其内容可以是任何可以被Python解释器理解的代码。模块中的内容可以通过导入语句被其他程序访问和使用。

模块的使用方法

在使用模块时,可以通过以下几种方式将其导入到当前程序中:

  • 导入整个模块

    使用import 模块名命令将模块中的所有内容导入当前程序。使用模块中的元素时,需使用模块名加上元素名称。

    import mymodulemymodule.now_time()
  • 导入特定函数

    使用from 模块名 import 函数名命令将模块中的特定函数导入当前程序。使用时可以直接使用函数名。

    from mymodule import now_timenow_time()
  • 导入模块中的所有函数

    使用from 模块名 import *命令将模块中的所有函数导入当前程序,可以直接使用这些函数。

    from mymodule import *now_time()
  • 模块的别名

    可以通过import 模块名 as 别名命令为模块指定一个别名,便于管理多个模块。

    import mymoudle as mymy.now_time()
  • 命名空间的作用与分类

    命名空间是Python中用来存储变量和函数的容器,主要有三个作用域类型:局部、全局和内建。命名空间通过名称将变量和函数与使用者区分开来,避免命名冲突。

    命名空间的分类

  • 局部命名空间
    属于函数或方法所拥有的命名空间,包含函数参数、局部变量等。
  • 全局命名空间
    属于模块加载时创建的命名空间,包含模块内的函数、类和变量。
  • 内建命名空间
    Python自带的命名空间,包含内置函数和异常。
  • 命名空间的作用

    • 隔离作用域:不同作用域的命名空间互不影响。
    • 命名分辨:通过名称区分不同的变量和函数。

    通讯录系统的模块化实践

    系统功能概述

    通讯录系统支持以下功能:

  • 添加联系人
  • 查看通讯录
  • 删除联系人
  • 修改联系人信息
  • 查找联系人
  • 退出系统
  • 系统演变历程

    第一版:面向过程的实现

    list_person = []print("欢迎使用通讯录1.添加联系人 2.查看通讯录3.删除联系人4.修改联系人信息5.查找联系人6.退出")while True:    gongneng = eval(input("请输入功能序号:"))    if gongneng == 1:        ximing = input("请输入联系人的姓名:")        shouji = input("请输入联系人的手机号:")        youxiang = input("请输入联系人的邮箱:")        dizhi = input("请输入联系人的地址:")        list_person.append({            "姓名": ximing,            "手机号": shouji,            "邮箱": youxiang,            "地址": dizhi        })    elif gongneng == 2:        if list_person:            for person in list_person:                for key, value in person.items():                    print(f"{key}:{value}")                print("-----------")        else:            print("通讯录没有联系人")    # 其他功能逻辑类似

    第二版:函数形式的实现

    将通讯录功能转化为多个函数,存储在address_book_function.py文件中:

    def add_person():    ximing = input("请输入联系人的姓名:")    shouji = input("请输入联系人的手机号:")    youxiang = input("请输入联系人的邮箱:")    dizhi = input("请输入联系人的地址:")    list_person.append({        "姓名": ximing,        "手机号": shouji,        "邮箱": youxiang,        "地址": dizhi    })def show_person():    if list_person:        for person in list_person:            for key, value in person.items():                print(f"{key}:{value}")            print("-----------")    else:        print("通讯录没有联系人")# main.py文件from address_book import *show_menu()while True:    gongneng = eval(input("请输入功能序号:"))    if gongneng == 1:        add_person()    elif gongneng == 2:        show_person()    # 其他功能逻辑类似

    第三版:模块化实现

    将功能模块化后,代码结构更加清晰,便于维护和扩展。

    总结

    模块是Python编程的基础,模块化能够有效地组织和管理代码结构。命名空间则负责管理程序中各个元素的存储和访问,确保开发过程中的安全性和可维护性。通过通讯录系统的演变实践,可以清晰地看到模块化对代码管理的重要作用。

    转载地址:http://uoefk.baihongyu.com/

    你可能感兴趣的文章
    Openstack企业级云计算实战第二、三期培训即将开始
    查看>>
    OpenStack创建虚拟机实例实战
    查看>>
    OpenStack安装部署实战
    查看>>
    OpenStack实践系列⑨云硬盘服务Cinder
    查看>>
    OpenStack架构
    查看>>
    OpenStack版本升级与故障排查实战
    查看>>
    OpenStack的基本概念与架构详解
    查看>>
    Openstack的视频学习
    查看>>
    openstack虚拟机迁移live-migration中libvirt配置
    查看>>
    OpenStack项目管理实战
    查看>>
    OpenStreetMap初探(一)——了解OpenStreetMap
    查看>>
    openSUSE 13.1 Milestone 2 发布
    查看>>
    openSUSE推出独立 GUI 包管理工具:YQPkg,简化了整个软件包管理流程
    查看>>
    OpenVSwtich(OVS)Vlan间路由实战 附实验环境
    查看>>
    Openwrt LuCI模块练习详细步骤
    查看>>
    OpenWrt固件编译刷机完全总结
    查看>>
    Open××× for Linux搭建之二
    查看>>
    Open×××有线网络时使用正常,无线网络时使用报错的解决方案
    查看>>
    Operation not supported on read-only collection 的解决方法 - [Windows Phone开发技巧系列1]
    查看>>
    Operations Manager 2007 R2系列之仪表板(多)视图
    查看>>