Xiu*_*ang 1 python variables scope if-statement tensorflow
import numpy as np
import tensorflow as tf
class simpleTest(tf.test.TestCase):
def setUp(self):
self.X = np.random.random_sample(size = (2, 3, 2))
def test(self):
a = 4
x = tf.constant(self.X, dtype=tf.float32)
if a % 2 == 0:
y = 2*x
else:
y = 3*x
z = 4*y
with self.test_session():
print y.eval()
print z.eval()
if __name__ == "__main__":
tf.test.main()
Run Code Online (Sandbox Code Playgroud)
这里y是tensorflow变量,并且在if else块中定义,为什么它可以在块外部使用?
这比tensorflow更通用,它与python的变量范围有关.记住这一点:
Python 没有块范围!*
考虑这个简单的例子:
x = 2
a = 5
if a == 5:
y = 2 * x
else:
y = 3 * x
z = 4 * y
print z # prints 16
Run Code Online (Sandbox Code Playgroud)
我想说的是,这y
不是在if语句的主体范围内定义的局部变量,因此可以在if语句之后使用它.