在【python 标准库】中看到的一段代码,非常有帮助:def all_nodes(self):

yield self

n = self.other

while n and n.name != self.name:

yield n

n = n.other

if n is self:

yield n

return

首尾的2处yield均只返回一次,作为循环图的起点、终点,而n作为图可能的节点,每次在next调用中均返回next节点

利用这个迭代器,就可以轻松打印出图的结构:

def __str__(self):

return '->'.join((n.name for n in self.all_nodes()))

Graph:

one->two->three->one

实现一个图结构需要利用python里面的弱引用,

我们先看一下标准的向图结构中增加下一节点的代码:

def set_next(self, other):

print '%s.next %r' % ( self.name, other)

self.other = other

这样绑定后,在属性字段中,增加一个对于下一节点的引用

c.__dict__

{'other': , 'name': '1'}

电脑技术002pc网对《python雪峰python 图 自身遍历及弱引用使用》总结来说,为我们python基础很实用。

所以,即使手动调用了 a = None, b = None, c = None,对象也不会被删除

Garbage:[,

,

,

{'name': 'one', 'other': },

{'name': 'two', 'other': },

{'name': 'three', 'other': }]

而弱引用是指“引用一个对象,但并不增加被引用对象的指针计数”

可以通过c = weekref.ref(k,func)

来指定引用的对象及对象删除后的动作func

调用时,使用c() 来引用k

但是在上个例子里面,我们需要一个“代理对象”来代理这个被引用的对象,从而使set_next 函数对于变量other可以同正常变量一样使用def set_next(self, other):

if other is not None:

if self in other.all_nodes():

other = weakref.proxy(other)

super(WeakGraph, self).set_next(other)

return

从而避免了通过other()来引用一个other对象~

更多:python雪峰python 图 自身遍历及弱引用使用

https://www.002pc.comhttps://www.002pc.com/python/2159.html

你可能感兴趣的python,及弱,遍历,引用,自身,使用

No alive nodes found in your cluster

0踩

0 赞

python雪峰_python雪峰python 图 自身遍历及弱引用使用相关推荐

  1. python字典弱引用_python 自身遍历及弱引用的简单示例

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 在[python 标准库]中看到的一段代码,非常有帮助: # @param python 图 自身 ...

  2. python作品_Python爬取图虫网摄影作品

    准备 要爬的网站是图虫网 工具:python 2.7,BeautifulSoup4 注意:BeautifulSoup4为第三方类库,如果在cmd下用pip安装报错,可直接去官网下载,解压后拷贝到pyt ...

  3. 如何在电脑上下载python中文版_Python下载-Python中文版官方下载

    Python是一款通用型的计算机程序设计语言,Python对编程人员来说是一款非常有利的工具,可以让您快速编写代码,而且代码运行速度非常快.Python具有非常简捷而清晰的语法特点,适合完成各种高层任 ...

  4. python深度优先_python数据结构之图深度优先和广度优先实例详解

    本文实例讲述了python数据结构之图深度优先和广度优先用法.分享给大家供大家参考.具体如下: 首先有一个概念:回溯 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标.但当探索到 ...

  5. python吧_Python | 初识Python程序设计

    我们先来看一个情景: 小烁和小慈周末骑共享单车出行游玩.假设某品牌共享单车计费方式如下:如果行程不超过10公里的,收取2元:如果超过10公里,那么超出的部分,按照0.5元每公里计费.小烁想设计一款小软 ...

  6. python小屋_Python小屋——Python语言基础(三)

    数字类型Python语言提供整数.浮点型.复数3种数字类型 整数整数类型与数学中整数的概念一致 整数类型共有4种进制表示:十进制.二进制.八进制.十六进制.整数采用十进制,其他进制需要添加引导符号 如 ...

  7. python小屋_Python小屋——Python语言基础(一)

    昨天跟大家介绍了python常用的两个开发工具,IDLE和PyCharm .从今天开始我们将从基础出发,跟大家一起探秘Python语言的魅力与美丽. 首先我们来看一段Python代码# -*- cod ...

  8. python 遍历_python实现图广度优先遍历、深度优先遍历

    一.广度优先遍历-BFS 顾名思义,BFS总是先访问完同一层的结点,然后才继续访问下一层结点,它最有用的性质是可以遍历一次就生成中心结点到所遍历结点的最短路径,这一点在求无权图的最短路径时非常有用.广 ...

  9. python商业爬虫教程_廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程...

    廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程 1.JPG (53.51 KB, 下载次数: 1) 2019-8-9 08:15 上传 2.JPG ...

最新文章

  1. linux tcp窗口大小设置,高性能Linux:TCP/IP内核参数调优之TCP窗口扩大因子(TCP Window Scaling)选项(理论篇)...
  2. 实现cookie跨域
  3. python selenium 鼠标移动到指定元素,并点击对应的元素
  4. 劳心者、劳力者或CEO、CTO各得其所,足矣
  5. Spring Boot SchedulingConfigurer定时执行任务(配置式反射调用)
  6. Leetcode--994. 腐烂的橘子(java)
  7. shell中执行某条语句失败能不能重复执行_如何理解Mysql中的事务隔离级别?
  8. 父窗口、子窗口和Silverlight之间的相互调用
  9. 《.NET应用架构设计:原则、模式与实践》新书博客-2.1.1-设计原则简述
  10. BIO | NIO | AIO (Java版)
  11. windows c++ 服务 当前用户提权_关于Windows下的提权方式(上)
  12. 关系抽取之PCNN(Piece-Wise-CNN)
  13. 计算机系统不升级设置,笔记本电脑怎么设置不更新系统?
  14. 磁共振钆造影剂 Au/Fe3O4复合CT/MRI双模态造影剂 四氧化三铁纳米粒子的磁共振成像造影剂
  15. 腾讯测试岗位的面试经历
  16. windows 取消开机自检
  17. AttributeError: module ‘tensorflow_core._api.v2.config‘ has no attribute ‘run_functions_eagerly‘
  18. DC-DC电源设计[基于MP2315]
  19. 使用keras时候,pycharm控制台太多日志,导致最开始的有用信息被覆盖,解决方案
  20. sqoop导入数据到hive

热门文章

  1. GPT中的temperature参数不是用在对话的而是用在调用OPEN API过程中的
  2. 【Linux篇】第七篇——进程地址空间(程序地址空间+虚拟地址空间)
  3. 利用聚宽免费数据进行量化分析
  4. 差分电路与Multisim仿真学习笔记
  5. 什么是A类、B类、C类地址?
  6. IP地址分类(A类地址B类地址C类地址D类E类)另外注意:私有地址
  7. 16位位图格式及对16位位图的一点个人总结
  8. oneapm php实例,号外!OneAPM Ai PHP 探针出 Windows 版本啦!
  9. matlab 帕多瓦数列 通项公式_斐波那契数列的通项公式
  10. Zipkin/Brave 整合Spring-MVC 框架实战