小小见解之python循环依赖
a.py
from b import b
print '---------this is module a.py----------'
def a():
print "hello, a"
b() a()
b.py
print '----------this is module b.py----------'
def b():
print "hello, b"
def c():
print "hello, c"
c()
from a import a
运行a.py,结果:

分析:
首先要去b.py中找到b(),而b.py中创建函数后直接就把b给它了,最后b.py又向a.py中要a,因为b.py已经得到想要的了,就答应给a.py想要的。就是说,我要的你先给我了,所以我也给你你想要的
运行b.py,结果:

分析:
a.py先向b.py要a(),但b不答应,反而要a.py先给b(),a.py不乐意,即使有也不给,谁让你不先满足我的要求。
总结,谁先要的必须给,如果不能被满足,就不答应另一方的要求,有点无理,但也没办法,人是自私的,程序也是自私的,否则一再谦让,说不定会让一个人即使给了东西却什么也得不到。
小小见解之python循环依赖的更多相关文章
- Python循环依赖问题的解决
一个是把某个import移到代码中间,使原先的循环依赖圈打开.
- 记 suds 模块循环依赖的坑-RuntimeError: maximum recursion depth exceeded
下面是soa接口调用的核心代码 #! /usr/bin/python # coding:utf-8 from suds.client import Clientdef SoaRequest(wsdl, ...
- Spring 的循环依赖,源码详细分析 → 真的非要三级缓存吗
开心一刻 吃完晚饭,坐在院子里和父亲聊天 父亲:你有什么人生追求? 我:金钱和美女 父亲对着我的头就是一丁弓,说道:小小年纪,怎么这么庸俗,重说一次 我:事业与爱情 父亲赞赏的摸了我的头,说道:嗯嗯, ...
- kmdjs和循环依赖
循环依赖 循环依赖是非常必要的,有的程序写着写着就循环依赖了,可以提取出一个对象来共同依赖解决循环依赖,但是有时会破坏程序的逻辑自封闭和高内聚.所以没解决好循环依赖的模块化库.框架.编译器都不是一个好 ...
- spring3 循环依赖
循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,则它们最终反映为一个环.此处不 ...
- 在.NET Core中遭遇循环依赖问题"A circular dependency was detected"
今天在将一个项目迁移至ASP.NET Core的过程中遭遇一个循环依赖问题,错误信息如下: A circular dependency was detected for the service of ...
- Python循环语句
1.Python循环类型 1.while循环:在某条件下,循环执行某段程序 a. while语句有两个重要命令:continue,break来跳出循环. continue用来跳出该次循环 break用 ...
- seaJS循环依赖的解决原理
seajs模块的六个状态. var STATUS = { 'FETCHING': 1, // The module file is fetching now. 模块正在下载中 'FETCHED': ...
- RequireJS 循环依赖报 模块undefined 处理方案
RequireJS 循环依赖 开始学习使用RequireJS之后做了几个小例子,之后想着把手头的项目也用RequireJS写一遍试试.感觉胜利就在前方了,忽然发现始终卡在一个问题上: 很常见的一个问题 ...
随机推荐
- 《细说PHP》第四版 样章 第二章 PHP的应用与发展 2
2.2 PHP的应用 任何一种主流的编程语言,几乎都可以开发任何类型的软件.编程语言就是一种开发工具,而选择适合的工具去做适合的事儿,才能体现其应用价值.PHP最主要的应用,就是与数据库交互来开发W ...
- Jmeter-Java请求实战
1.1. jmeter-java插件实现接口测试 (linux /mysql/rabbit-mq) 本次需要准备环境 Eclipse+jdk8 Jmeter Python 1.1.1. Rabbit- ...
- 百度Sitemap生成器
今天用了两个小时, 为无限影视(https://www.88tv.org)开发了一个小工具, 用来生成baidu的sitemap. 方便用. 因为该电影站的视频内容详情网页的ID是自增长的,所以可以 ...
- 微信小程序 + Bmob后端云
闲暇之余,写了一个私人的小程序,但由于带有商品.订单功能被拒了(腾讯太狗带了,只有商家才可以使用这种功能),没办法,不给过审,那就拿出来分享一下. 原本想的是做一个超市类的电商平台,带有下单支付等功能 ...
- c++ lesson 一(命名空间输入输出)
// // main.cpp // C++lessonOne // // Created by keyan on 15/11/13. // Copyright © 2015年 keyan. All r ...
- swift(五)swift的函数
/** * 函数的定义和调用 */ func showIntegerArray(array:[Int]) { for a in array { println("\(a)") } ...
- 剑指offer 15:链表的倒数第k个节点
题目描述 输入一个链表,输出该链表中倒数第k个结点. 解题思路 使用快慢指针法,让快指针先走k步,然后再让慢指针开始走,当快指针到达链表尾部时,慢指针刚好到达倒数第k个节点. C++代码实现: /* ...
- [b0006] Spark 2.0.1 伪分布式搭建练手
环境: 已经安装好: hadoop 2.6.4 yarn 参考: [b0001] 伪分布式 hadoop 2.6.4 准备: spark-2.0.1-bin-hadoop2.6.tgz 下载地址: ...
- JVM运行机制(非原创)
文章大纲 JVM基本概念 JVM的体系结构 JVM启动流程 一.JVM基本概念 Java虚拟机(JVM)是可运行Java代码的假想计算机 Java虚拟机包括类加载器.一组寄存器.方法区.一个垃圾回收堆 ...
- ansible错误ImportError: No module named ansible.runner记录
按着官网提供的安装ansible To configure the PPA on your machine and install ansible run these commands: $ sudo ...