首页 > 编程语言 >python函数声明(参数/返回值注释)和三个双引号用法

python函数声明(参数/返回值注释)和三个双引号用法

时间:2024-06-18 15:33:17浏览次数:21  
标签:双引号 python max len 注释 int str print 返回值

 

 1 # python的"""三个双引号两种用法:(1)多行注释  (2)定义多行字符串
 2 def f1(ham: 42, eggs: int = 'spam') -> "Nothing to see here":
 3     print("函数注释", f1.__annotations__) # 函数注释 {'ham': 42, 'eggs': <class 'int'>, 'return': 'Nothing to see here'}
 4     print("参数值打印", ham, eggs)  # 参数值打印 www spam
 5     print(type(ham), type(eggs))  # <class 'str'> <class 'str'>
 6 
 7 f1("www") # 无类型校验提醒,第二个参数用默认值'spam'
 8 print('\n')
 9 f1("www", "hello") # 黄色波浪线类型校验 提醒“应为类型 'int',但实际为 'str' ”;第3行打印——gs': <class 'int'>, 'return': 'Nothing to see here'}
10 print('\n')
11 f1("www", 996)
12 print('\n')
13 
14 # max_len应该是一个大于0的整数,并且默认值为80。不过,这种写法 'int>0' 并不是Python标准的类型注解方式,它不会被Python解释器当作类型约束来执行,只是简单地将其视为一个注解字符串
15 # 更合理:def f2(text: str, max_len: int = 80) -> str:
16 # 正确的做法是使用类型注解,并且对于额外的约束(如必须大于0),通常应在函数体内部实现检查逻辑,如下
17 """
18 def f2(text: str, max_len: Annotated[int, "大于0的整数"] = 80) -> str:  # 它告诉阅读代码的人(以及某些静态类型检查器)有关max_len的意图
19     assert isinstance(max_len, int) and max_len > 0, "max_len 必须是一个大于0的整数"  # 但实际的约束条件(大于0)仍需通过assert语句或逻辑判断来手动实施
20     # 函数体...
21 """
22 
23 """
24 函数声明中,text:str
25 text 是参数 :冒号后面  str是参数的注释。
26 如果参数有默认值,还要给注释,如下写。
27 max_len:'int>0'=80
28 
29 ->str 是函数返回值的注释。
30 
31 这些注释信息都是函数的元信息,保存在f.__annotations__字典中、
32 
33 需要注意,python对注释信息和f.__annotations__的一致性,不做检查
34 不做检查,不做强制,不做验证!什么都不做。
35 """
36 def f2(text: str, max_len: 'int>0' = 80) -> str:
37     """这个是函数的帮助说明文档,help时会显示"""
38     print("函数注释", f2.__annotations__) # 函数注释 {'text': <class 'str'>, 'max_len': 'int>0', 'return': <class 'str'>}
39     print("参数值打印", text, max_len)  # 参数值打印 taobao new
40     print(type(text), type(max_len)) # <class 'str'> <class 'str'>
41 
42 f2("taobao", 'new')  # 参数值打印 taobao -1,前面的注释'int>0'

 

标签:双引号,python,max,len,注释,int,str,print,返回值
From: https://www.cnblogs.com/wxdlut/p/18254452

相关文章

  • (slam工具)6 python四元数转化旋转矩阵
       importnumpyasnpfromscipy.spatial.transformimportRotationasRimportpyprojfrompyprojimportProj,transform#0.0169380355232107080.58455146147157355-0.488705791564092830.64744060819180593-129342.747563395343469822.8668770161534369......
  • IPython 使用技巧整理
    IPython使用技巧整理IPython是一种强大的交互式Pythonshell,提供了许多增强功能,适合数据科学、机器学习和科学计算等多个领域。以下是一些常用的IPython使用技巧。目录基础功能魔法命令扩展和插件与JupyterNotebook的集成调试与错误处理性能优化基础功能1.自动......
  • 小于n的最大数 - 贪心算法及证明 - 附python实现
    一、问题描述?    给定一个整数n,并从1~9中给定若干个可以使用的数字,根据上述两个条件,得到每一位都为给定可使用数字的、最大的小于整数n的数。    例如,给定可以使用的数字为{2,3,8}三个数:    给定n=3589,输出3388;给定n=8234,输出8233;…… 二、解......
  • Python - Meta Class
    Aspartofmetaprogramming,ametaclassisoneofthemostimportantconceptsinPython.AClassinPythondefinesthefunctionalityofitsobjectsusingattributesandmethods.Incontrast,ametaclassdefinesthefunctionalityoftheclasses,whereast......
  • python 开发工具IDE 之 thonny
    一、thonny简介    thonny是一款开源免费的pythonIDE(集成开发环境),其内置python解释器,无需安装python解释器和配置环境变量。下载thonny,安装即可使用,轻量简便,省去python环境安装及配置的烦恼。二、thonny优缺点   优点:简单轻便,免费开源,支持中文且功能不复杂,适......
  • 补充第一天的python学习笔记
    昨天晚上学习到10点左右太困了,没有完成既定目标,迁延一日。补充下昨天的学习内容,算是对第一天学习时的回顾。1.字符集编码(1)utf-8全球通用,一个字节等于8个二进制位,utf-8用于中文占3个字节(2)unicode全球通用,16位二进制以上(3)gbk专为中国人设计的编码,一个文字占2个字节......
  • Fatal error in launcher: Unable to create process using ‘“python.exe“ “\pyt
    1.设置环境变量将pip和python的路径加入环境变量中2.在cmd中,查看是否存在python,pip等3.把应用安装程序中的python.exe和python3.exe关闭4.正常使用详情请看微软的常见问题,链接如下:关于在Windows上使用Python的FAQ|MicrosoftLearn......
  • 每日一题——Python实现PAT甲级1132 Cut Integer(举一反三+思想解读+逐步优化)五千字好
    一个认为一切根源都是“自己不够强”的INTJ个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数Python-3.12.0文档解读目录 我的写法正确性和功能性时间复杂度空间复杂度其他点评总结我要更强优化后的时间复杂度和空间复杂度进一......
  • Python实现快速获取历史气象数据
    利用Python中pandas库的read_html功能从网站查历史天气(q-weather.info)获取历史气象数据,并使用tkinter库实现窗口可视化。代码如下:1.首先导入必要的库:importtkinterastkfromtkinterimportmessageboximportpandasaspd2.定义一个用法,使用户可以查看所有气象基准......
  • 深入解析:如何通过Python脚本将YOLO标注格式转换为COCO格式并进行验证
    深入解析:如何通过Python脚本将YOLO标注格式转换为COCO格式并进行验证随着深度学习和计算机视觉技术的飞速发展,物体检测成为了一个热门的研究领域。在物体检测任务中,YOLO(YouOnlyLookOnce)和COCO(CommonObjectsinContext)是两个非常重要的标注格式。YOLO因其高效的实时物......