首页 > 编程语言 >类型提示和python函数中'->'的用法

类型提示和python函数中'->'的用法

时间:2023-01-18 14:22:21浏览次数:41  
标签:full last 函数 python 用法 str first name

一、类型提示

在python中,我们定义一个有参函数,调用该函数时需要传入参数,如下所示:

# 定义一个简单的函数
def get_full_name(first_name, last_name):
    full_name = first_name.title() + " " + last_name.title()
    return full_name


print(get_full_name("john", "doe"))  # 正常运行,结果:John Doe
print(get_full_name(1,2))  # 报错

"""
上面的函数中有两个参数,但是没有说明参数的数据类型,
所以如果我们传入的类型不是str类型就会报错
"""

如上所示,如果没有去看函数的内部代码,函数的调用者并不知道需要传什么数据类型的参数给函数,所以我们就需要给调用者一些提示,告诉调用者该函数的参数应该使用什么数据类型的参数,这就是类型提示,如下:

# 注意函数参数后面的 ':str', 就表示该参数需要的是str类型的数据
def get_full_name(first_name: str, last_name: str):
    full_name = first_name.title() + " " + last_name.title()
    return full_name


print(get_full_name("john", "doe"))

如上面的代码所示,我们将把下面这段代码中的函数参数从:

first_name, last_name

改成:

first_name: str, last_name: str

这样调用者就知道该传什么数据类型的参数。这和声明默认值是不同的,例如:

# 给函数参数添加默认值
first_name="john", last_name="doe"

这两者不一样。

我们用的是冒号(:),不是等号(=)。

而且添加类型提示一般不会改变原来的运行结果。

二、'->'的用法

使用上面的例子,如下:

def get_full_name(first_name: str, last_name: str):
    full_name = first_name.title() + " " + last_name.title()
    return full_name

可以看到,如果不看内部代码,我们并不知道这个函数返回值的数据类型,所以我们做如下改动:

# 注意函数形参后面有个: -> str
def get_full_name(first_name, last_name) -> str:
    full_name = first_name.title() + " " + last_name.title()
    return full_name

我们可以看到,在上面的函数中,我们在形参后面添加了 '-> str' ,这个指的是函数的返回值为数据类型,告诉函数调用者这个函数的返回值为 str 类型的数据。

标签:full,last,函数,python,用法,str,first,name
From: https://www.cnblogs.com/yesirya/p/17059713.html

相关文章

  • 如果有效python code review
    这篇文章主要介绍一些工具,方法,可以帮助我们做codepre-commit检查,这样我们做codereview之前,这些工具方法就帮我们解决了一些代码风格的问题和静态检查就能检查出来......
  • #Powerbi 理解VAR函数
    VAR意思即为变量,在编程语言中,变量是一个重要概念,DAX作为一种语言也有变量概念,利用VAR,我们可以缩短我们一些DAX语句的长度,更清晰的表达我们的度量值计算逻辑。举例说明:我......
  • Python导入Excel表格数据并以字典dict格式保存
      本文介绍基于Python语言,将一个Excel表格文件中的数据导入到Python中,并将其通过字典格式来存储的方法。  我们以如下所示的一个表格(.xlsx格式)作为简单的示例。其中,表......
  • python3中(?P的正则应用
    importre'''其中?P可以理解为将字符串s分组处理并命名为province、city、block'''s='13g00x21yy'res=re.search('(?P<province>\d{2}).*(?P<city>\d{2}).*(?P<block>\d......
  • 使用Python的一维卷积
    学习&转载文章:使用Python的一维卷积背景在开发机器学习算法时,最重要的事情之一(如果不是最重要的话)是提取最相关的特征,这是在项目的特征工程部分中完成的。在CNNs中,此......
  • pyinstaller打包Python程序报错OSError: Python library not found: libpython3.8.so,
    重新编译python(不影响原来安装的库文件),加入--enable-shared./configure--prefix=/usr/local/python3--enable-shared然后make&&makeinstall就好了现在再次打开pytho......
  • python datetime 计算时间差
    场景:数据存储需要已5分钟为单位存储,目前上报数据是0.5s上报一次目前能想到的逻辑是,已最后一次存储的时间拿出来,与获取的时间数据计算差值,大于等于300秒就入库只能想到这......
  • C++调用python方法及环境配置(Windows环境、VS工具)
    c++和python使用混合编程,有四种方式来实现:(1)C++调用python(2)直接调用python文件并执行(3)3.使用Cpython:这是一个第三方库,可以将python代码直接变成c代码(4)使用pybind11库(建......
  • Python判断值是否在列表中进阶用法
    初级使用方式一般会这样写domain=["naihe.me","abc.com","123.cn","efg.xyz"]foriindomain:ifi=="naihe.me":print(i=="naihe.me")......
  • 使用 Python Paramiko 的嵌套 SSH
    ssh嵌套:https://stackoverflow.com/questions/35304525/nested-ssh-using-python-paramiko......