函数名的使用

Posted luckinlee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数名的使用相关的知识,希望对你有一定的参考价值。

一. 函数名的运用

函数名是一个变量, 但它是一个特殊的变量, 与括号配合可以执行函数的变量

函数名的内存地址

def func():   
    print("呵呵")
print(func)

结果: <function func at 0x1101e4ea0>

函数名可以赋值给其他变量

def func():   
    print("呵呵")
    print(func)
a = func    # 把函数当成一个值赋值给另一个变量

a()     # 函数调用 func()

函数名可以当做容器类的元素

def func1():   
    print("呵呵")
def func2():   
    print("呵呵")
def func3():   
    print("呵呵")
def func4():  
     print("呵呵")

lst = [func1, func2, func3]
for i in lst:  
     i()

函数名可以当做函数的参数

def func():   
    print("吃了么")
def func2(fn):   
    print("我是func2")   
    fn()    # 执行传递过来的fn   
    print("我是func2")
func2(func)     # 把函数func当成参数传递给func2的参数fn.

函数名可以作为函数的返回值

def func_1():   
    print("这里是函数1")   
    def func_2():       
        print("这里是函数2")   
    print("这里是函数1")   
    return func_2
fn = func_1()  
# 执行函数1.  函数1返回的是函数2, 这时fn指向的就是上面函数2
fn()    # 执行func_2函数

二.f-strings字符串格式化

f-strings 是python3.6开始加入标准库的格式化输出新的写法,这个格式化输出比之前的%s 或者 format 效率高并且更加简化,非常的好用,相信我,你们学完这个之后,以后再用格式化输出这就是你们唯一的选择。

简单举例

他的结构就是F(f)+ str的形式,在字符串中想替换的位置用展位,与format类似,但是用在字符串后面写入替换的内容,而他可以直接识别。碉堡了。

name = '宝元'
age = 18
sex = '男'
msg = F'姓名:name,性别:age,年龄:sex'  # 大写字母也可以
msg = f'姓名:name,性别:age,年龄:sex'  
print(msg)
'''
输出结果:
姓名:宝元,性别:18,年龄:男
'''

任意表达式

他可以加任意的表达式,非常方便:

print(f'3*21')  # 63

name = 'barry'
print(f"全部大写:name.upper()")  # 全部大写:BARRY

# 字典也可以
teacher = 'name': '宝元', 'age': 18
msg = f"The teacher is teacher['name'], aged teacher['age']"
print(msg)  # The comedian is 宝元, aged 18

# 列表也行
l1 = ['宝元', 18]
msg = f'姓名:l1[0],年龄:l1[1].'
print(msg)  # 姓名:宝元,年龄:18.

也可以插入表达式

可以用函数完成相应的功能,然后将返回值返回到字符串相应的位置

def sum_a_b(a,b):
    return a + b
a = 1
b = 2
print('求和的结果为' + f'sum_a_b(a,b)')

多行f

xname = 'barry'
age = 18
ajd = 'handsome'

# speaker = f'''Hi name.
# You are age years old.
# You are a ajd guy!'''

speaker = f'Hi name.'          f'You are age years old.'          f'You are a ajd guy!'
print(speaker)

其他细节

print(f"73")  # 73
print(f"73")  # 73
print(f"73")  # 73
m = 21
# ! , :   ;这些标点不能出现在 这里面。
# print(f';12')  # 报错
# 所以使用lambda 表达式会出现一些问题。
# 解决方式:可将lambda嵌套在圆括号里面解决此问题。
x = 5
print(f'(lambda x: x*2) (x)')  # 10

以上是关于函数名的使用的主要内容,如果未能解决你的问题,请参考以下文章

函数名的使用

函数名的使用和新版格式化输出

如何使用R中函数名的字符串调用函数?

如何使用 ctypes 调用具有双下划线函数名的 DLL 函数?

函数名的本质

如何将使用参数包和类型名的类作为函数的输入参数(c++)