首页 > 编程语言 >javascript VS python 变量作用域

javascript VS python 变量作用域

时间:2023-04-02 16:13:47浏览次数:48  
标签:global 作用域 javascript js python print scope 全局变量

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

相关文章

  • 孤狼老师-接口测试自动化(Python版完整版)-日志记录&测试报告
            此时,由于每次执行方法前,都会执行一遍setup,故每次都要初始化一次LoggerHelper方法,每次都会加载一次配置文件,优化LoggerHelper:        针对多个接口用例,使用如下方式:   ......
  • Python使用rtlsdr
    1.打开命令行  也可以在Spyder中的控制台中2.安装rtlsdrpipinstallpyrtlsdr3.下载驱动动态库https://ftp.osmocom.org/binaries/windows/rtl-sdr/因为python是64位的,所以驱动也要下载64位的 下载最新的即可4.这三个就是我们需要的驱动  5.将三个驱动复制......
  • 【Linux Centos】如何卸载自带的python和yum以及卸载后如何重新安装yum
    【LinuxCentos】如何卸载自带的python和yum以及卸载后如何重新安装yum注意如果不是必要情况,请不要卸载服务器自带的python,因为yum等命令都会用到python库,卸载以后可能造成不良后果。如果只是觉得系统python版本不合适,想安装新版本,建议安装anaconda或miniconda,在不同的环境中使......
  • python从入门到实践第16章 下载数据1
    第一步获取csv格式文件需要python爬虫的相关知识 第二步 先打印第一行观察标签importcsvfilename='data/sitka_weather_2014.csv'withopen(filename)asf:reader=csv.reader(f)header_row=next(reader)print(header_row)['AKST','MaxTempe......
  • Python遍历时删除元素问题(附深拷贝与浅拷贝介绍)
    问题有时候,我们希望用Python遍历一个列表(或其他可迭代对象),如果其中有我们不需要的元素就把它删除并继续遍历。如以下代码段,我们本希望打印1、3,可最后却只打印了1。a=[1,2,3]foriina:ifi==2:a.remove(i)else:print(i)分析其实,之所以......
  • python面向对象进阶
    面向对象进阶类型判断issubclasstypeisinstance反射反射的四个函数importlib类的其他成员__str____repr____format____del____dict__和__slots____item__系列__init____new____call____doc____iter__和__next____ente......
  • [oeasy]python0123_中文字符_文字编码_gb2312_激光照排技术_王选
    中文编码GB2312回忆上次内容上次回顾了日韩各有编码格式日本有假名五十音一字节可以勉强放下 有日本汉字字符数量超过20000+  韩国有谚文数量超过500一个字节放不下 有朝鲜汉字字符数量超过20000+......
  • Python异常 ValueError的问题详解
    导读这篇文章主要介绍了Python异常ValueError的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教Python异常ValueErrorValueError:invalidliteralforint()withbase10:'*'试图将一个与数字无关的类型转化为整数,会抛出该异常。......
  • 爬虫简单python小程序
    importrequestsfrombs4importBeautifulSoupbase_url='your_base_url_here'#根据网站的实际URL模式修改此函数defget_page_url(page_number):returnf'{base_url}?page={page_number}'#根据网站的HTML结构,您可能需要修改以下选择器以获取游戏标题defget_g......
  • python的类继承总结
    参考文档:https://blog.csdn.net/yilulvxing/article/details/85374142总结如下:第一种情况:子类和父类都有__init__(self)方法情况继承研究#如果子类也有init方法,那么调用父类的实例属性必须要在子类的init()方法中有这个super().__init__()【这点尤其要注意】#如果子类也有in......