js中函数内部默认是可以读取到外部声明的变量,python不可以,必须使用关键字 global
global 必须在函数内部使用,用以内化函数外部变量。在函数外部是无法声明全局变量的,或者说所谓的全局变量在函数内部是不好使的,这还叫什么全局变量?应该叫局外变量。而global是内部跟局外变量建立一种联系。就是说这个局外变量在本函数内好使,但在别人那还是管不了。js的全局变量才是真正的全局,只要声明的时候不加let
,更不要加var
,那就是绝对的“全局”,哪都好使,哪都是它。python中有这个东西吗?既然“global”用在了这个局外变量的内化上,估计是没有真正的全局变量了。
都说全局变量占用资源,python那是省了。
var声明两边竟然也行,而在严格模式下这都是直接报错,无需声明的天然“真全局变量”也是会直接被报错的。
scope = 'global'
def scope_1():
global scope
print(scope)
scope = 'local'
print(scope)
def scope_2():
# print(scope) ## UnboundLocalError
scope = '222'
print(scope)
scope_1()
scope_2()
print(scope)
js的var
是个建议被let
取代的声明方式。因为不论在什么位置使用它,在实际运行中,都会抛开赋值单单的把声明的部分提至最前,然后在声明之后复制之前就是连全局变量也拯救不了的“暂时性X区”,真是个不招人喜欢的现象。
scope = 'jsRealGlobal'
function scope_js(){
// var scope; // equivalence state.
console.log(scope);
var scope='local';
console.log(scope);
}
scope_js();
""" output:
undefined
local
"""
参考:https://blog.csdn.net/davidsu33/article/details/52300596
标签:global,作用域,javascript,js,python,print,scope,全局变量 From: https://www.cnblogs.com/etfolinbase/p/17280494.html