专栏首页Pythonpython——模块和包 需要注意的地方

python——模块和包 需要注意的地方

一 模块

1.import

import module:   将执行文件(module)的目录路径插入到sys.path的第一个位置

执行时:

  1.创建新的名称空间   2.执行被调用的模块   第二次调用,不会再执行该模块,只是完成一次引用

(import语句是可以在程序中的任意位置使用的,且针对同一个模块很import多次,为了防止你重复导入,python的优化手段是:第一次导入后就将模块名加载到内存了,后续的import语句仅是对已经加载大内存中的模块对象增加了一次引用,不会重新执行模块内的语句)

2

为模块名起别名,相当于m1=1;m2=m1 

1 import my_module as sm
2 print(sm.money)

示范用法一:

有两中sql模块mysql和oracle,根据用户的输入,选择不同的sql功能

示范用法二: 

为已经导入的模块起别名的方式对编写可扩展的代码很有用,假设有两个模块xmlreader.py和csvreader.py,它们都定义了函数read_data(filename):用来从文件中读取一些数据,但采用不同的输入格式。可以编写代码来选择性地挑选读取模块,例如

示例方法二

3.from ... import...

from 模块 import 变量名

from modname import name1[, name2[, ... nameN]]

import 模块名 【同一目录下可以直接import】 要调用模块内的变量,需要 模块名.变量名 函数调用: 模块名.函数名()

from 模块名 import 变量名1 (或函数名) 只导入了模块名下的变量名1

from 模块名 import * 可以直接引起 模块名下的所有变量名(包括函数名)

用*导入要注意,在使用模块内的变量名时,可能会与执行文件中的变量名(或函数名)相同,发生覆盖,   1.若先定义了本函数中的变量名,后导入模块,执行相同变量名时,引用的是模块内变量名的意义   2.若先导入了模块,后定义了变量名,则引用的是后定义时的意义 (类似定义变量)

二 包(package) 组织模块的方式:包 在python中,包可以理解成一个文件夹,但是每一个文件夹里必须要有一个__init__文件 2.1 from 包 import 模块 2.2 同级目录下的被调用模块之间的相互调用 2.3 if __name__=='__main__':

2.4 from 包.包 import 模块 from 包.包.模块 import 变量名字 2.5 __init__文件的作用 from 包 import 模块 【重要】执行文件时,会将文件所在目录路径,插入到sys.path的第一个位置,此时执行文件中 from 包 import 模块名, from 会从执行文件所在目录下面,也就是执行文件同级目录中找包(如果) 1.文件和包在同一目录下,

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python那些事——15分钟用Python破解验证码系统!

    让我们一起攻破世界上最流行的WordPress的验证码插件 每个人都讨厌验证码——在你被允许访问一个网站之前,你总被要求输入那些烦人的图像中所包含的文本。 验证...

    企鹅号小编
  • python学习总结

    最近经学长介绍学习python,为研究生做研究做准备,python对于科学计算有着很高的效率,对于科研人员当然是有着很强的诱惑,虽然我还没真正用它,但从整个学习...

    CloudDeveloper
  • 神级程序员告诉你,如何在这全民Python时代中,正确快速的学习Python

    Python如今愈发火热的一种语言,随互联网的发生而创立,又随互联网的极速发展而繁荣。使用Python会遇到各种各样的问题 开源中国OSC高手问答请来了《Pyt...

    企鹅号小编
  • python网络编程初级

    网络编程的专利权应该属于Unix,各个平台(如windows、Linux等)、各门语言(C、C++、Python、Java等)所实现的符合自身特性的语法都大同小...

    CloudDeveloper
  • python学习笔记一

    之前看过一本100多页的《python简明教程》,都是些非常简单的语法,现在到真正用的时候根本无从下手,所以,重新捧起一本《python学习手册》,1000多页...

    CloudDeveloper
  • Java中Properties类的操作

        知识学而不用,就等于没用,到真正用到的时候还得重新再学。最近在看几款开源模拟器的源码,里面涉及到了很多关于Properties类的引用,由于Java已经...

    CloudDeveloper
  • Python学习笔记之一

    一、Python简介 Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于19...

    企鹅号小编
  • python基础的几个小练习题

    题目: 1、写一个程序,判断2008年是否是闰年。 2、写一个程序,用于计算2008年10月1日是这一年的第几天?(2008年1月1日是这一年的第一天) 3、(...

    CloudDeveloper
  • 哪些Python操作是原子性的?

    与同事的一次对话使我意识到一个事实,那就是Python中相当大一部分操作都是原子的,即使像字典和类成员赋值这样的操作也是原子的。 为了完成像哈希表插入这样的操作...

    企鹅号小编
  • 从一个集合中查找最大最小的N个元素——Python heapq 堆数据结构

    Top N问题在搜索引擎、推荐系统领域应用很广, 如果用我们较为常见的语言,如C、C++、Java等,代码量至少也得五行,但是用Python的话,只用一个函数就...

    CloudDeveloper

扫码关注云+社区

领取腾讯云代金券