欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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