函数名的本质

先来看一段函数

def alex():
    prinr(123)

def func()"
    return alex

ret = func()
print(ret())

这段函数执行后的结果是这样的

123
None

这样就看结果得出来,函数名是可以当作变量使用的。

既然可以当作变量使用,那么它一定具备变量的部分特性,。

函数的本质

一,函数名是一个函数的内存地址

二,可以赋值,可以作为其他列表等容器类的元素。

三,可以作为函数的参数,返回值。

当然了,函数名的命名规则和变量名一样

一,以数字,字母,下划线组成,数字不能开头

三,不能和python中的关键字相同,

三,见名知意

总结一下,函数名简单粗暴的说,就是一个内存地址的名字。

时间: 2024-10-08 11:23:10

函数名的本质的相关文章

DAY11 函数进阶(函数名的本质,闭包,迭代器)

函数名的本质与一级对象: 1.函数名表示函数的内存地址. 2.函数名可以赋值给变量,可以作为容器数据类型的元素. 3.函数名可以作为参数传递给函数. 4.函数名可以作为函数的返回值. #一. 函数名表示函数的内存地址 def func(): print(111) print(func) >>><function func at 0x00000199DFD22F28> #二.函数名可以赋值给变量,可以作为容器数据类型的元素. def func(): print(111) f =

函数名的本质和闭包

函数名的本质: 函数可以作为容器中一项 函数名可以赋值 可以作为参数 可以做返回值 返回值的本质:是返回的值,而不是某个变量 def func(): a=1 return  a b=func() print(b) func#函数的内存地址 函数名加括号==调用 函数地址加括号==调用 函数名可以赋值 def  f(): print(123) f() a=b=f f() a() b=() 容器类型:列表 元祖 字典 集合 函数可以作为容器类型中的一项,可以做字典的keys def f1(): pr

python入门基础-三元表达式、命名空间、作用域、函数名本质、闭包

1.三元表达式(三目运算式) #1 三元表达式(三目运算法) #格式为: 为真时的结果 if 判定条件 else 为假时的结果 #另外三元表达式只适合较为简洁的条件判定,较为复杂的判定建议不要用这种方式写代码,因为比较让他人难以理解. a = 10 b = 15 compare = a if a > b else b #谁大返回谁 print(compare) 2.命名空间(namespace) #2 命名空间(namespace) #命名空间是名称和对象的印象,也可以将命名空间理解成一个字典,

对于函数名本质的一点思考

自己在学习函数指针的时候对函数名的意义产生了一点疑惑,经过一些尝试和思考,感觉应该可以像下面这样理解,如果有啥不对的希望大家指正. 首先 我们对变量名的定义做一下回顾: 在C语言里面,我们声明一个变量的时候就会给这个变量名分配一个内存空间,也就是说变量名和内存空间相对应:同时每个内存空间都会有个地址. int a; a=5; 上面两句话说明了:变量a对应的内存空间存储了一个整型数5,并且我们还可以知道这个内存空间的地址是&a. 对于函数的调用我们一般是直接用函数名的,但是在汇编语言里面,调用函数

c语言中数组名的本质

c语言中的数组名的本质是什么,数组名是指针吗? 1.数组名是数组元素的首地址#include <stdlib.h>#include <stdio.h>void main() { int a[10] = {1, 2, 3, 4, 5, 6, 7, 8,9, 10}; printf("a:%d &a:%d :%d \n", a, &a); system("pause"); }上面的程序中,a &a大小一样,证明a就是数组元

python 函数名 、闭包 装饰器 day13

1,函数名的使用. 函数名是函数的名字,本质就是变量,特殊的变量.函数名()加括号就是执行此函数. 1,单独打印函数名就是此函数的内存地址. def func1(): print(555) print(func1) # <function func1 at 0x0000027B7CF1A048> 2,函数名的赋值 def func(): print(666) f = func print(f()) 3,函数名可以作为容器类数据的元素. def f1(): print(111) def f2()

函数名也可以当做变量,

函数名是一个特殊的变量,加括号就能执行函数,函数的名字,本质是变量,特殊的变量 函数名可以当做变量使,可以赋值,可以作为容器类的数据元素,可以作参数,作为函数的返回值 1.赋值 def func1(): print(666) f = func1()  #将函数名赋值给一个变量f print(f) 2.作为容器类的数据元素 def f1(): print(111) def f2(): print(222) def f3(): print(333) def f4(): print(444) #如何只

C++ DLL导出函数的两种方法(导出序号那种方法,别人看不到函数名)

第一种就直接导出函数名如下代码: #ifdef__cplusplus #define TEXPORT extern "c" _declspec(dllexport) #dlse #define TEXPORT _declspec(dllexport) TEXPORT BOOL FUN();//这就是要导出函数 这种方法查看DLL时能看到函数名. 第二种是就导出序号如下代码: bool _stdcall fun(); 在工程右键添加新项目点模块定义文件.DEF, 在在DEF文件里写 LI

SQL SERVER修改函数名引起的问题

1. 问题 今天遇到一个奇怪的问题:使用sp_helptext XXX查询出来的函数定义名竟然跟函数名不同,而sp_helptext实际是查询sys.all_sql_modules这个系统视图的.直接查询这个视图的definition字段,发现跟sp_helptext是一样的.难道是系统视图也存在缓存之类的机制?或者是个BUG?对于第一个问题,当时情况紧急,没有时间去求证是否存在了.第二个问题,我想没什么可能,SQL SERVER发展到今天(SQL 2016正式版准备推出,我使用的环境则是SQL