讨论采用 * 模糊导入或者 单独导入变量 会在不同文件生成不同的对象
.a
└── mypackage
├── a.py
├── b.py
├── c.py
 

b.py内容如下

import c

def b():
print("b方法开始")
print(c.config)
print(id(c.config))

c.py内容如下

config = "ONCE"

a.py内容如下

import b
import c def a():
print(c.config)
c.config = "TWO"
print(c.config)
print(id(c.config))
print("a方法执行完毕") a()
b.b()

执行a.py,输出

ONCE
TWO
2492322048184
a方法执行完毕
b方法开始
TWO
2492322048184

id值相同,意味着此时a,b文件共用一个对象

===========================我是分割线===========================

但是。。。假如

======a.py======
import b
from c import config def a():
global config
print(config)
config = "TWO"
print(config)
print(id(config))
print("a方法执行完毕") a()
b.b()
======b.py======
from c import config def b():
print("b方法开始")
print(config)
print(id(config)) ======c.py======
config = "ONCE"

那么此时a.py输出为

ONCE
TWO
1813891082424
a方法执行完毕
b方法开始
ONCE
1813894255144

id值不同,意味着不是同一个对象

因此如果需要使用可修改配置文件的全局变量,需要用文件名方式导入,将其当作一个全局类使用

单独导入或者模糊导入会拥有不同的id和引用类型

关于python导包问题的更多相关文章

  1. python导包学习总结

    python初学者,对于导包纠结了不少时间,总结分享,持续前进~ Python导包的两种方法: 1.1  from 包.模块  import 方法名,调用时直接使用方法名() 1.2  from 包. ...

  2. python导包显示No module named XXX问题

    最近用sublime text写python脚本,在导包是一直显示No module named XXX. 问题描述: 首先文件夹的目录结构如下: count.py文件,代码如下: #coding=u ...

  3. python导包语句执行

    今天在做项目中遇到一个问题,在first_page中引用login的登录方法,第一次执行登录可以正常登录,登录成功后,再选择返回主菜单,回到上个页面,再选择登录时报错“login_class isno ...

  4. python导包问题,这一篇就够了

    解决办法: 将项目所在的根目录添加到sys.path中 在入口文件中加入如下代码: import sys import os # 将 项目的根目录添加到sys.path中 BASE_DIR = os. ...

  5. 记一次Python导包经历

    最近由于需要写一个脚本调用另一个文件里面的一个方法,试了很久都导包失败,特此记录一下 问题背景 1)脚本文件为send_reward.py,要调用public_model_func.py里面的一个类方 ...

  6. python导包

    我们将完成特定功能的代码块放在一个.py结尾的文件中,这个文件被称为模块.在这个模块中可能包含变量,函数,类等等内容. 当我们从外部需要用到这个模块时,就需要将这个模块导入到我们当前环境.导入方式有以 ...

  7. python导包路径的修改

    1.sys os 模块 import sys import os 2.查看默认的导包路路径: print(sys.path) 3.路径拼接 os.path.join(url, 'apps')) 4.追 ...

  8. python导包一不小心就入坑(常用解决办法)

    常见导包报错: - ImportError:No module named - SystemError: Parent module '' not loaded, cannot perform rel ...

  9. 太酷炫了!!我会Python 导包八种方法,你呢?

    1. 直接 import 人尽皆知的方法,直接导入即可 >>> import os >>> os.getcwd() '/home/wangbm'复制代码 与此类似的 ...

  10. python导包踩过的坑之包名和模块名同名

随机推荐

  1. OpenStack Blazar 架构解析与功能实践

    目录 文章目录 目录 Blazar Blazar 的安装部署 Blazar 的软件架构 Blazar 的资源模型与状态机 Blazar 的主机资源预留功能(Host Reservation) 代码实现 ...

  2. SQL Server 等待统计信息基线收集

    背景 我们随时监控每个服务器不同时间段的wait statistics ,可以根据监控信息大概判断什么时候开始出现异常,相当于一个wait statistics基线收集,还可以具体分析占比高的等待类型 ...

  3. RSA签名、验签、加密、解密

    最近在做一个项目,与一个支付渠道进行连接进行充值,为了安全,每个接口访问时,都要先登陆(调用登陆接口),拿到一个sessionKey,后续业务接口内容用它来进行3DES加密处理.而登陆需要用到RSA进 ...

  4. windows下sqlplus怎么连接远程oracle

    语法:sqlplus usr/pwd@//host:port/sid [oracle@mzl ~]$ sqlplus system/51411482@//192.168.21.11:1521/orcl ...

  5. linux新建文件夹

    mkdir -p .... -p  ----parents no error if existion, make parent directories as needed

  6. jvm的学习笔记:二、类的初始化,代码实战(3)

    首次主动此用导致类的初始化 MyParent4 myParent4 = new MyParent4(); MyParent4 myParent5 = new MyParent4(); 输出: MyPa ...

  7. Python assert 关键字

    Python assert(断言)用于判断一个表达式,在表达式条件为 False 的时候触发异常. 断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况. 语法格式: ...

  8. 安装VMWare tools 及安装后/mnt中有hgfs但没共享文件的解决办法

    一.首先是安装VMWare tools打开虚拟机软件,在菜单栏‘虚拟机’子菜单下‘安装VMware Tools' 1.以root身份进入Linux 2.此时把linux的/dev/cdrom设备挂载到 ...

  9. [Python3 练习] 011 利用异常解题

    目录 函数式编程 Functional Programming 1. 简介 2. 函数 3. 匿名函数 3.1 lambda 表达式也称"匿名函数" 3.2 lambda 表达式的 ...

  10. python 学习笔记三 (函数)

    1.把函数视为对象 def factorial(n): '''return n!''' return 1 if n < 2 else n*factorial(n-1) print(factori ...