【问题标题】:How to change local variable value to global value in python?如何在python中将局部变量值更改为全局值?
【发布时间】:2020-03-17 03:28:58
【问题描述】:

我只想把局部变量a的值改成全局变量a的值。

如何将此a = 0 更改为a = 1

a = 0

 def accurx(a):
    a = a
    return a

 accuracy_summary = tf.summary.scalar("value a=0 changed to a=1 here", accurx(a))

 def do_report():

    global a
    a = 1
    a = accurx(a)

    summaryx, _ = sess.run([accuracy_summary, correct], feed_dict={x: batch_xs, y_: batch_ys, keep_prob: 1.0})
    summaryx_writer.add_summary(summaryx, batch_idx)

我在这里调用 accuracy_summary

【问题讨论】:

  • 你可以通过全局关键字来实现这一点(无论如何你都是在 do_report() 函数中做的。

标签: python-3.x tensorflow tensorboard


【解决方案1】:

你做得很好但是你的功能accurx似乎没用,a = 1已经在修改a的值

如果你想用全局值修改局部值,不要以相同的方式命名以清楚

这样做

a = 0

def do_report():

    global a
    a = 1

do_report()

accuracy_summary = tf.summary.scalar("value a=0 changed to a=1 here", a)

summaryx, _ = sess.run([accuracy_summary, correct], feed_dict={x:batch_xs, y_: batch_ys, keep_prob: 1.0})
summaryx_writer.add_summary(summaryx, batch_idx)

【讨论】:

  • 毕竟accuracy_summary中a还是0
  • 是的,你没有调用你的do_report函数,代码只是在做a = areturn a所以0 = 0return 0
  • 那么我在哪里调用 do_report?
  • 有没有其他方法可以在 accuracy_summary 之前不调用 do_report 并将值 0 更改为 1 ?
  • 不调用do_report是不能修改值的,你需要这样做(我加了两个打印显示从0到1的值)a = 0 def do_report(): global a a = 1 print(a) do_report() print(a)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-14
相关资源
最近更新 更多