首页 > 系统相关 >70:函数也是对象_内存分析

70:函数也是对象_内存分析

时间:2022-11-19 13:12:09浏览次数:51  
标签:star 函数 对象 内存 70 print 变量

###函数也是对象,内存底层分析

Python 中,“一切都是对象”。实际上,执行 def 定义函数后,系统就创建了相应的函数对象。我们执行如下程序,然后进行解释:

def print_star():
    print("*********")


print(print_star())

print("===========================")

print(id(print_star()))

print("===========================")

print_star()

输出结果

D:\work\python\two\venv\Scripts\python.exe D:\work\python\two\mypy04.py 
*********
None
===========================
*********
140736299919352
===========================
*********

上面代码执行 def 时,系统中会创建函数对象,并通过 print_star 这个变量进行引用:

我们执行“c=print_star”后,显然将 print_star 变量的值赋给了变量 c,内存图变成了:

显然,我们可以看出变量 c 和 print_star 都是指向了同一个函数对象。因此,执行 c(3)和执行 print_star(3)的效果是完全一致的。 Python 中,圆括号意味着调用函数。在没有圆括号的情况下,Python 会把函数当做普通对象。

与此核心原理类似,我们也可以做如下操作:
zhengshu = int
zhengshu("234")

显然,我们将内置函数对象 int()赋值给了变量 zhengshu,这样 zhengshu 和 int 都是指向了同一个内置函数对象。当然,此处仅限于原理性讲解,实际开发中没必要这么做。

标签:star,函数,对象,内存,70,print,变量
From: https://www.cnblogs.com/yuanzijian/p/16905915.html

相关文章

  • 67:函数的基本概念_内存分析_函数的分类_定义和调用
    ###函数简介###函数的基本概念1.一个程序由一个个任务组成;函数就是代表一个任务或者一个功能。2.函数是代码复用的通用机制。###Python函数的分类Python中函数分为......
  • Python全部内置函数详细认识(中篇)
    ......
  • C语言中函数形参与实参的区别
    众所周知一个函数有两种参数,即形参和实参。那么究竟什么是形参什么是实参呢?形参:在定义函数时指定的参数,在未出现函数调用时,他们并不占用内存中的存储单元。只有在发生函数调......
  • 箭头函数与普通函数的区别、浏览器解析html的过程
    箭头函数与普通函数1.书写方式不同,箭头函数使用箭头定义,普通函数使用关键字 2.this指向不同:箭头:2.11箭头函数本身没有prototype,所以没有自己的this,2.21它的this只能......
  • 函数式编程
    函数式编程函数是一等公民,函数式的思想来源于数学运算,而柯里化的操作可以将多参函数转为单参函数,而单参函数一般希望是纯函数(即不存在副作用的函数),可以实现f(g(x))这样......
  • C++ZeroMemory内存清零
      看:https://www.cnblogs.com/liming19680104/p/10499280.html         ......
  • JVM内存结构与内存模型
    这篇文章重点讲一下jvm的内存结构和内存模型的知识点。1、内存结构jvm内存区域主要分为线程私有区域【程序计数器,虚拟机栈,本地方法栈】,线程共享区域【堆,方法区】,直接内存......
  • 代码随想录day3---LeetCode203移除链表元素&707设计链表&206反转链表
    LeetCode203移除链表元素给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例1:输入:head=[1,2,6,......
  • sql 函数
               ......
  • ES6之函数参数默认值
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>函数......