多模块开发时注意事项

通过from 模块 import 变量,此时相当于给一个变量赋值

import time # 相当于在本文件中创建了一个名为time变量,这个变量指向python标准库中的time模块
from time import ctime  # 相当于在本文件中创建了一个ctime变量,这个变量指向time模块中的ctime方法

如果在程序中修改了变量的值就导致这个变量成了局部变量,跟其他模块就不共享了。
但是如果想要修改导入模块中的值又想让这个修改过的值在其他导入该模块的地方全局共享,要使用模块名.变量的方式去调用

  • 如果使用form xxxx import yyy的方式导入一个模块中的变量,则修改这个变量的方式为:yyy = 20貌似这个方式和在本地创建一个变量并赋值没有什么区别,经过测试可知确实不可行
  • 使用import xxxx的方式导入,则修改方式为xxxx.yyy = true可以很明确的知道这是给xxxx模块的yyy变量赋值为true,经测试也可知这种方式是可以的

特殊情况如果xxxx模块中的yyy变量是一个可变类型的列表呢?

  • 使用import xxxx的方式导入,肯定可用此处不再测试
  • 使用form xxxx import yyy的方式呢?分情况,如果使用yyy=[1,2,3]这样的赋值方式,很明显肯定不可以共享,这种方式相当于本文件的yyy变量原始指向xxxx模块的yyy,经过yyy = [1,2,3]他指向了[1,2,3]这个列表,已经改变了他的引用方式二:使用yyy.append(1)这样的方式对该变量内部数据进行修改,并没有改变该变量的引用经测试没有问题

如果多模块开发时想导入一个模块中的变量,建议使用import 模块名的方式,然后通过模块名.变量的方式去调用可以避免很多麻烦。

python3中import的那么些坑相关推荐

  1. python3中import time是什么意思_python3_time模块详解

    python提供的时间模块time是需要单独引入: 1.time.sleep(secs)# 推迟调用线程的运行,secs指的是秒 time.sleep(secs) 2.time.time():返回当前 ...

  2. oracle urlencode 中文,Python2和Python3中urllib库中urlencode的使用注意事项

    前言 在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urlencode的包 ...

  3. python2 md5库_python版本坑:md5例子(python2与python3中md5区别)

    起步 对于一些字符,python2和python3的md5加密出来是不一样的. # python2.7 pwd = "xxx" + chr(163) + "fj" ...

  4. python3.5中import cv2报错

    本文未转载,原博客地址:http://blog.csdn.net/u010430471/article/details/78009446 Python3 Anaconda3下import cv2错误解 ...

  5. Centos7+mysql57+python3安装过程中踩过的坑

    Centos7+mysql57+python3安装过程中踩过的坑 说明: 为了练习Django项目,准备在虚拟机中安装Centos7+mysql57+python3.在windows环境下通过Navi ...

  6. python3中字符串编码常见种类_Python基础篇—标准数据类型—String字符串编码问题...

    我要开始写String编码问题了...脑壳疼.. 在String字符串的第一篇末尾有留一个坑,就是关于中文字符串编码.整个编码的故事说起来都是很费劲的,我也只能把我所知道的梳理整理一下,在日常敲码过程 ...

  7. python替代hadoop_Python连接Hadoop数据中遇到的各种坑(汇总)

    最近准备使用Python+Hadoop+Pandas进行一些深度的分析与机器学习相关工作.(当然随着学习过程的进展,现在准备使用Python+Spark+Hadoop这样一套体系来搭建后续的工作环境) ...

  8. python怎么横着输出_对python3中, print横向输出的方法详解

    对python3中, print横向输出的方法详解 Python 2 : print打印的时候,如果结尾有逗号,打出来时候不会换行.但是在python3里面就不行了. Python3: 3.0的pri ...

  9. #Python3中tornado高并发框架

    Python3中tornado高并发框架 简介: Tornado是一种 Web 服务器软件的开源版本.Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别 ...

最新文章

  1. FragmentPagerAdapter与FragmentStatePagerAdapter使用详解与区别
  2. python matplotlab.pyplot.pcolormesh() 函数,以及如何自定义画色彩图 (pcolormesh()与pcolor()的区别)
  3. 【cocos2d-x】瓷砖地图(TileMap)基础知识
  4. 痛恨3721的朋友们,装个avast! Antivirus吧
  5. [物理学与PDEs]第1章习题6 无限长载流直线的磁场
  6. 有关对耗时很大循环进行并行化优化的探讨之二:多重循环任务的并发处理
  7. c语言解三元一次方程组_一次二次反比例,一山更比一山高?二次函数三大解析式详解...
  8. Unity插件——Odin 学习笔记(三)
  9. 怎么创建电脑的无线网络连接服务器,怎么开通无线网络
  10. 和娃一起过暑假:一次4000+km自驾的尝试
  11. 国内木兰造假!国外无一入选顶会!论两极分化下的编程语言研究
  12. keil下汇编语言调试分析
  13. 【三种常见架构开发模式:MVC、MVP、MVVM】
  14. html上标下标标签 示例_带有示例HTML th表标题标签教程
  15. PPT 图 保存为高清图片(可自定义分辨率)
  16. Oracle ClusterwarePRCT-1011 : Failed to run oifcfg. Detailed error: null
  17. Postgrey和PostgreSQL
  18. java编程语言的优点
  19. 免费报表XDOC从入门到精通(一)简介
  20. Mac系统配置环境变量保姆级教程

热门文章

  1. Leetcode PHP题解--D68 283. Move Zeroes
  2. Android Themes与Styles实践
  3. Java动态性(3) - 脚本引擎执行javascript代码
  4. 数据挖掘:大数据发展的核心驱动力
  5. jsp 页面中文乱码解决(笔记)
  6. [原创] VPDN--PPTP Server
  7. 【ASP.NET】基础补习之验证控件
  8. DreamFactory入门指南 - 第1章REST和DreamFactory简介
  9. 容器编排技术 -- Kubernetes Deployment
  10. 消息队列面试 - 如何保证消息队列的高可用?