我真的不能想到为什么python需要del
关键字(并且大多数语言似乎没有类似的关键字).例如,不是删除变量,而是可以分配None
给它.从字典中删除时,del
可以添加方法.
是否有任何理由保留del
python,或者它是Python垃圾收集前几天的遗迹?
使用python属性,我可以这样做
obj.y
Run Code Online (Sandbox Code Playgroud)
调用函数而不是仅返回值.
有没有办法用模块做到这一点?我有一个我想要的案例
module.y
Run Code Online (Sandbox Code Playgroud)
调用函数,而不是只返回存储在那里的值.
我发现以下代码的变量范围非常出乎意料...(来自其他语言,其中变量的范围scope_var
仅存在于 IF 的范围内):
if scope_var := 'exists after IF':
pass
print(scope_var)
Run Code Online (Sandbox Code Playgroud)
将打印什么?
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块中定义,为什么它可以在块外部使用?
我不明白这怎么可能?这里我在循环外使用i
for循环的值。for
for
for i, kv in enumerate(bucket):
k, v = kv
if key == k:
key_exists = True
break
#here is the issue...
if key_exists:
bucket[i] = ((key, value))
print(i)
else:
bucket.append((key, value))
Run Code Online (Sandbox Code Playgroud) python ×5
python-3.x ×2
scope ×2
del ×1
dictionary ×1
for-loop ×1
if-statement ×1
properties ×1
tensorflow ×1
variables ×1