(一)Python入门-5函数:03函数也是对象-内存分析

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

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

 1 #函数也是对象
 2 def print_star(n):
 3     print(‘*‘*n)
 4
 5 print_star(3)
 6 c = print_star
 7 c(3)
 8
 9 print(id(print_star))
10 print(id(c))
11 print(type(c))

  上面代码执行 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 都是指向 了同一个内置函数对象。当然,此处仅限于原理性讲解,实际开发中没必要这么做。

原文地址:https://www.cnblogs.com/jack-zh/p/10837904.html

时间: 2024-07-29 17:48:57

(一)Python入门-5函数:03函数也是对象-内存分析的相关文章

python入门学习:7.函数

python入门学习:7.函数 关键点:函数 7.1 定义函数7.2 传递实参7.3 返回值7.4 传递列表7.5 传递任意数量的实参7.6 将函数存储在模块中 7.1 定义函数 ??使用关键字def告诉python要定义一个函数,紧接着跟着函数名,冒号.后面的缩进构成函数体.例如: 1def func_name():2    函数体34def greet_user():5    """显示简单问候语"""6    print("hel

Python入门(八) 函数基础

1. 定义一个函数: 1)必须以def开头 2)参数之间用,隔开 3)函数的内容以冒号:开始,并且缩进 4)不带表达式的return,相当于返回None def function_name(parameters):     #do something     ...     return [expression] def cal_sum(a,b):     return (a + b)     #调用函数 sum = cal_sum(2, 6) print(sum) >>> 8 2. 函

python入门基础教程08 函数的形参与实参

函数的形参与实参 在函数定义时的变量称作函数的形参,形参主要是函数接收函数外部值传入函数体内去处理,是函数和外部程序或者语句的接口.函数调用时的变量称之为实参.现在我们举个例子来说明一下形参和实参. #define fun: multi def multi(x, y):     z = x * y         return z #define main function def main():     a = 12     b = 13 #function 'add' called c = 

Python 入门(七)函数

什么是函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = 73.1 s1 = 3.14 * r1 * r1 s2 = 3.14 * r2 * r2 s3 = 3.14 * r3 * r3 当代码出现有规律的重复的时候,你就需要当心了,每次写3.14 * x * x不仅很麻烦,而且,如果要把3.14改成3.14159265359的时候,得全部替换. 有了函

Python入门(九) 函数-闭包

在Python中,函数也是一种变量类型,也就是说可以用变量去保存一个函数. def hello():     print("hello") print(type(hello)) >>> <class 'function'> #将函数对象赋值为变量func,此时func指向了hello指向的函数对象 func = hello func() #调用函数 >>> hello 通过上面可以看出,我们可以把一个函数赋值为一个变量,那么此变量就指向该

Python入门:内置函数

可创建一个整数列表,一般用在 for 循环中. 函数语法 range(start, stop[, step]) 参数说明: start: 计数从 start 开始.默认是从 0 开始.例如range(5)等价于range(0, 5); end: 计数到 end 结束,但不包括 end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step:步长,默认为1.例如:range(0, 5) 等价于 range(0, 5, 1) 示例: >>>range(10) # 从

python学习之路03(函数)

到时再记录 3.内置函数-高阶函数 1.filter(func,sequence)接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新迭代器(在python3中),(在python2中就返回一个list) li = ['a','b','c'] def f(s): # 定义一个过滤函数 if s != 'a': return s re = filter(f,li)

python入门(五)函数的定义

python中函数的定义以def开头,后面跟函数定义的名称和())'括号中定义参数' 以冒号开始,并且进行缩放,return结束如: def hello (ming): print ming return 传递参数: ming=[1,2,3]ming="ok"如上所示,变量是没有类型的,可以为list可以为str参数分为 必备参数 关键字参数 默认参数 不定长参数 必备参数: def hello (ming): print ming return 调用函数 hello(): 那么会报错

python入门基础教程03 Python开发环境基本使用

Hello Python 初识Python语言 Python(英语发音:/'pain/), 是一种面向对象.直译式计算机程序设计语言,由Guido van Rossum 于1989年底发明,第一个公开发行版发行于1991 年.Py- thon 语法简捷而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起.Python语言的发明者Guido Van Rossum 在90 年代初发明了Python 语言,Python是目前运