为啥我的这段python代码运行不出来结果,也没报错,跪求大神指点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我的这段python代码运行不出来结果,也没报错,跪求大神指点相关的知识,希望对你有一定的参考价值。

import sys
import os
import random
import networkx as nx
import matplotlib.pyplot as plt
from networkx.generators.classic import empty_graph
debug=True

#定义一个方法,它有两个参数:n - 网络节点数量;m - 每步演化加入的边数量
def barabasi_albert_graph(n, m):
# 生成一个包含m个节点的空图 (即BA模型中t=0时的m0个节点)
G=empty_graph(m)
# 定义新加入边要连接的m个目标节点
targets=range(m)
# 将现有节点按正比于其度的次数加入到一个数组中,初始化时的m个节点度均为0,所以数组为空
repeated_nodes=[]
# 添加其余的 n-m 个节点,第一个节点编号为m(Python的数组编号从0开始)
source=m
# 循环添加节点
while source<n:
# 从源节点连接m条边到选定的m个节点targets上(注意targets是上一步生成的)
G.add_edges_from(zip([source]*m,targets))
# 对于每个被选择的节点,将它们加入到repeated_nodes数组中(它们的度增加了1)
repeated_nodes.extend(targets)
# 将源点m次加入到repeated_nodes数组中(它的度增加了m)
repeated_nodes.extend([source]*m)
# 从现有节点中选取m个节点 ,按正比于度的概率(即度优先连接)
targets=set()
while len(targets)<m:
#按正比于度的概率随机选择一个节点,
x=random.choice(repeated_nodes)
#将其添加到目标节点数组targets中
targets.add(x)
#挑选下一个源点,转到循环开始,直到达到给定的节点数n
source += 1
#返回所得的图G
return G
#nx.draw(G)
#G.function()
#plt.show()
if __name__=='__main__':
barabasi_albert_graph(50,30)

参考技术A 只是return啊
没有看到对结果处理。所以就是运行完就结束了。可以搞个中间变量,把运行结果的值赋值给它,再把他打印出来。本回答被提问者和网友采纳

为啥 iPhone Developer's Cookbook 中的这段代码有效?

【中文标题】为啥 iPhone Developer\'s Cookbook 中的这段代码有效?【英文标题】:Why does this code from iPhone Developer's Cookbook work?为什么 iPhone Developer's Cookbook 中的这段代码有效? 【发布时间】:2009-08-09 00:31:02 【问题描述】:

我一直在尝试 Erica Sadun 的《The iPhone Developer's Cookbook》一书中的一些视图代码,发现一些我不明白的代码。这是 loadView 方法的代码:

- (void)loadView

    // Create the main view
    UIView *contentView = [[UIView alloc] initWithFrame: 
        [[UIScreen mainScreen] applicationFrame]];
    contentView.backgroundColor = [UIColor whiteColor];
    self.view = contentView;
   [contentView release];

    // Get the view bounds as our starting point
    CGRect apprect = [contentView bounds];

    // Add each inset subview
    UIView *subview = [[UIView alloc] 
        initWithFrame:CGRectInset(apprect, 32.0f, 32.0f)];
    subview.backgroundColor = [UIColor lightGrayColor];
    [contentView addSubview:subview];
    [subview release];

我的问题是为什么她发布了 contentView,然后又在[contentView addSubview:subview] 中使用它? self.view = contentView 是否保留了 contentView?

【问题讨论】:

看起来不对。 contentView 直到方法结束才会发布,所以这可能不会导致任何问题,但我无法想象你为什么会故意这样构建它。 并非如此。对 self.view 的赋值保留了 contentView,因此在创建对象后立即释放它是您可以得到的最接近的值。它是故意这样构建的,因为(在 Cocoa 范例中)视图控制器保留视图是有意义的。 【参考方案1】:

如果您查看 UIViewController 的文档,您会看到视图属性声明为:

@property(nonatomic, retain) UIView *view;

这意味着当您使用 setView: 方法(或使用 = 左侧的 .view)时,您传入的任何值都将被保留。因此,如果您查看代码并查看保留计数,您会得到:

- (void)loadView 
    // Create the main view
    UIView *contentView = [[UIView alloc] initWithFrame: 
            [[UIScreen mainScreen] applicationFrame]];  //retain count +1
    contentView.backgroundColor = [UIColor whiteColor];  //retain count +1
    self.view = contentView;  //retain count +2
    [contentView release];  //retain count +1

    // Get the view bounds as our starting point
    CGRect apprect = [contentView bounds];

    // Add each inset subview
    UIView *subview = [[UIView alloc] 
            initWithFrame:CGRectInset(apprect, 32.0f, 32.0f)];
    subview.backgroundColor = [UIColor lightGrayColor];
    [contentView addSubview:subview];
    [subview release];

我想说,真正有趣的是,释放 contentView 后,我们仍然可以向它发送消息,因为位于 contentView 指针末尾的对象仍然存在(因为它是通过调用 setView 保留的:)。

【讨论】:

这是正确的,但我个人避免这种风格/模式——如果在某个时候你决定将该属性从retain 更改为assign,那么这段代码将自发地开始崩溃。当然,这不是 UIViewController.view 属性的问题,但是对于您自己的属性,它会在以后遇到麻烦。 是的,这正是它起作用的原因,而且它是一种可怕的形式。一旦你发布了一个特定的引用,你不应该再次使用它,它很容易出错。版本应该被移到最后,或者所有超出版本的 contentView 的外观都应该更改为 self.view。 它并不真正符合风格,除非“ 认为有害”是一种风格。 我不同意笼统地概括它是可怕的形式。 UIViewController 是一个公共 API,在不破坏依赖代码的情况下无法更改属性属性。这个习语不一定适用于所有情况,但它非常适合将视图控制器与其控制的视图耦合。此外,在分配之后直接释放大约是最接近对象创建的方法。事实上,如果没有设置背景颜色的分配,我可能会在对象创建周围包装一个自动释放并将其直接分配给属性。 如果它是自动释放的,那就没问题了,不好的形式是通过一个 lval 访问一个变量,在 lval 被释放之前,它被重新分配。在这种情况下,release 和 autorelease 艺术完全不同,因为 autorelease 在池耗尽之前没有机会使指向的数据失效。【参考方案2】:

如果你像这样声明你的财产 @property(非原子,保留)... 那么是的,分配时保留该属性。这可能是怎么回事

【讨论】:

制定一个语法正确的答案并避免使用 IM 风格的缩写可能有助于避免未来的反对意见。 (我没有投反对票,我只是说......) 我知道,但是在输入来自 iPhone 的响应时很难大声笑,当我这样做时,我写的只是最低限度并且不能真正很好地制定代码,但我认为这个答案无论如何都会对提问者有所帮助,所以我贴出来

以上是关于为啥我的这段python代码运行不出来结果,也没报错,跪求大神指点的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的程序运行一段时间后就没反应了,Tomcat也没报错,但是重新启动Tomcat后程序又能正常运行?

dataGridView控件怎么加载数据显示不出来 也没报错

python的这段代码怎么运行

为啥数组中的这段代码不合适?

eclipse运行没反应,也没报错。有没有人帮我解答一些?

为啥使用类变量的这段代码不能像在 Java 中那样工作? [复制]