python变量赋值、指针、对象的一些粗浅理解
程序员文章站
2022-03-15 14:49:43
文章目录一、项目背景1、项目需求2、实施时间二、 技术背景1、阅读文章所需知识背景2、开发环境3、开发工具三、思考及测试过程总结一、项目背景1、项目需求复习python基础原理的过程中,发现自己对于python对象有些错误理解,故单独写一篇博文记录,以此勉励自己,加深记忆2、实施时间2020-12-29二、 技术背景1、阅读文章所需知识背景 1)具有少量python基础2、开发环境1)Win10-642)Python 3.6.63、开发工具1)Pycharm 2020.2.2三...
一、项目背景
1、项目需求
复习python基础原理的过程中,发现自己对于python对象有些错误理解,故单独写一篇博文记录,以此勉励自己,加深记忆
2、实施时间
2020-12-29
二、 技术背景
1、阅读文章所需知识背景
1)具有少量python基础
2、开发环境
1)Win10-64
2)Python 3.6.6
3、开发工具
1)Pycharm 2020.2.2
三、思考及测试过程
def myFunction(content='world'):
return "Hello " + content
print(myFunction())
"""
myFunction() result
Hello world
"""
# 我们也可以将该函数赋值给一个变量,例如
func = myFunction
# 这里没有加(),所以这里仅仅是将函数本身赋值给func,此时func是一个函数
# 如果加上()则func变成了myFunction的返回结果,也就是 "Hello " + content,此时的func变成了一个字符串
"""
func() result
Hello world
"""
# 让我们删除myFunction函数,看看会发生什么!
del myFunction
# print(myFunction())
"""
myFunction() result
NameError: name 'myFunction' is not defined
"""
# 此时我们可以看到myFunction函数已经不存在了
# 那么新的问题来了我们在删除myFunction函数之前已经将该函数赋值给变量func了,那么现在func函数还存在吗?
print(func())
"""
func() result
Hello world
"""
# 结果证明func函数依然存在,其并没有因为myFunction被删除而受到影响
# 那么新的问题又来了,我们在使用 func = myFunction 到底发生了什么?
# 为什么myFunction已经被删除了func却没有受到影响呢?
# 下面我们来进行一组新的实验
def myNewFunction(content='world'):
return "Hello " + content
print(myNewFunction)
"""
myNewFunction result
<function myNewFunction at 0x00000145E0574950>
"""
# 此时我们可以看到python创建了一个名为myNewFunction的函数,并将其分配在内存地址0x00000145E0574950位置
newFunc = myNewFunction
print(newFunc)
"""
newFunc result
<function myNewFunction at 0x00000145E0574950>
"""
# 此时我们可以看到,python并没有新建一个newFunc函数,此时打印出的仍是位于内存地址0x00000145E0574950的myNewFunction函数
# 这里我们可以理解为变量newFunc其实只有一个指针,指向了内存中位于0x00000145E0574950的myNewFunction函数
del myNewFunction
print(newFunc)
"""
newFunc result
<function myNewFunction at 0x00000145E0574950>
"""
# 执行完del myNewFunction之后我们发现newFunc并没有受到影响,其依然指向内存中位于0x00000145E0574950的myNewFunction函数
# 由此可知del myNewFunction在此刻并没有删除内存中的myNewFunction函数,而仅仅是删除了一个名为myNewFunction的变量
# 到此我们可以粗浅的认为,python中的变量其实只是一个指针,指向内存地址中的某一个对象,修改某个变量的赋值时,其实只是更改了指向
# 至于对象在何时被创建、何时被删除博主尚未认真研究,这里就先全权交给python来处理吧
总结
整个代码并不复杂,勤加思考才能使人进步,才能成为立身之本。编写本文一方面是为了加深记忆,勉励自己,另一方面希望本文可以帮助到有需要的人。阅读本文的过程中如有任何问题欢迎随时与我联系。
本文地址:https://blog.csdn.net/qq_28347389/article/details/111934037
上一篇: pandas学习task06连接
下一篇: 日志12月30日