如果在我的示例中需要在Python数组中指定参数类型,则需要编写如下内容:

def my_function(param: list):

pass

在Swift中,您可以这样指定参数类型:

func myFunction(param: [Any]) {

//

}

有一天,我犯了Swift风格的错误,并写道:

def my_function_2(param: []):

pass

现在我注意到了,尝试一些更奇怪的事情:

def my_function_3(param: 1):

pass

所有这些函数都是有效的,可以在Python 3.6中调用。预期参数类型为1的函数...为什么会发生,为什么我看不到任何警告,并且必须将哪种类型的变量传递给函数2和3才能满足我错误请求的参数类型?

参考方案

注释对Python的编译器和解释器没有意义。1只要您键入的是语法上有效的表达式,Python都会对其进行求值,将其值存储为函数注释的一部分,并留在那里供您执行所需的操作。 (通常不算什么)。

实际上,您可以看到此存储没有问题:

>>> print(my_function_3.__annotations__)

{'param': 1}

注释的要点是使用静态类型检查器,如PEP 484中所述(以及随附的PEP 483和PEP 482用于背景)。

静态类型检查在Python中是可选的,通常使用专用工具(例如mypy)或集成到IDE中的工具(例如PyCharm)来完成。

如果您对您的代码运行这样的检查器,它将发出投诉。例如:

$ mypy testscript.py

testscript.py:1: error: invalid type comment or annotation

此错误意味着无法确定1应该是哪种类型。2

最后一件事:

我必须将哪种类型的变量传递给函数2和3才能满足我错误地请求的参数类型

没有任何类型可以满足要求。 Python的运行时类型规则比其(可选)静态类型规则更灵活,但它们不那么灵活。3

1.但是,它们确实对stdlib中的至少一件事the dataclass decorator有意义。

2. Mypy从此处继续,但是没有更多错误,即使您滥用主体中的参数或不正确地调用函数也是如此。据我所知,它会跳过检查正文,并将该函数视为已接受任何参数并返回了Any。这是很合理的-这样一来,您只会得到一个错误,而不是数百个可能毫无意义的无用错误。

3.您甚至无法测试它-isinstance(obj, 1)将引发异常because 1 is not an instance of type 。但是,如果可以的话,只有在通过将obj(或1的子类,没有子类)作为元类调用创建1时,才可能返回true,或者如果obj.__class__设置为1(或子类),则返回true。 ,这是不可能的,或者int具有接受obj的实例或子类钩子,而否。但是-至少在CPython和PyPy中-甚至还没有达到目标。当然,您总是可以在Python之下,在C API下,并直接修改ob_type下的struct的obj字段以指向1对象,但是,如果您这样做,则尝试使用obj进行的操作都只会出现段错误。

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…Python:图像处理可产生皱纹纸效果 - python

也许很难描述我的问题。我正在寻找Python中的算法,以在带有某些文本的白色图像上创建皱纹纸效果。我的第一个尝试是在带有文字的图像上添加一些真实的皱纹纸图像(具有透明度)。看起来不错,但副作用是文本没有真正起皱。所以我正在寻找更好的解决方案,有什么想法吗?谢谢 参考方案 除了使用透明性之外,假设您有两张相同尺寸的图像,一张在皱纹纸上明亮,一张在白色背景上有深…Python uuid4,如何限制唯一字符的长度 - python

在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…Python:如何停止多线程的numpy? - python

我知道这似乎是一个荒谬的问题,但是我必须在与部门中其他人共享的计算服务器上定期运行作业,当我开始10个作业时,我真的希望它只占用10个核心而不是更多;我不在乎每次运行一个内核所需的时间是否更长:我只是不想让它侵犯其他人的领土,这将需要我放弃工作等等。我只想拥有10个核心,仅此而已。更具体地说,我在基于Python 2.7.3和numpy 1.6.1的Redh…

python 定义函数参数的类型_1作为函数声明中的参数类型 - python相关推荐

  1. mysql数据库 布尔类型_MySql数据库类型bit等与JAVA中的对应类型【布尔类型怎么存】...

    用char(1):可以表示字符或者数字,但是不能直接计算同列的值.存储消耗1个字节 用tinyint:只能表示数字,可以直接计算,存储消耗2个字节 用bit: 只能表示0或1,不能计算,存储消耗小于等 ...

  2. 【Mybatis】Mybatis将String类型的0存到数据库中的number类型字段中,变成了空;

    一.问题 Mybatis将String类型的0存到数据库中的number类型字段中,变成了空: 二.分析 自己写了一个自动写代码的脚本,带入springBatch后,读取文件时,少了序列号0-9的记录 ...

  3. Python定义变量、基本数据类型、print()函数、复杂数据类型

    目录 1. 定义变量 2. 基本数据类型 3. 输出函数print() 4. 复杂数据类型 1. 定义变量 变量是一个抽象的概念,是计算机语言中用来储存计算结果或表示值的抽象概念. python中定义 ...

  4. python中的数字类型格式与运算_Python中的数字类型格式与运算

    出品 Python中的数字(Digital)与数学中的数字相同,可以通过各种各样的运算符实现各种计算,在Python中数字类型的数据格式分为以下几种: 1.整数型(integer) 2.浮点数(flo ...

  5. python映射类型是什么意思_Python中字典映射类型的学习教程

    字典是python语言中唯一的映射类型,用花括号{}表示,一个字典条目就是一个键值对,方法keys()返回字典的键列表,values()返回字典的值列表,items()返回字典的键值对列表.字典中的值 ...

  6. c 语言 可变参数前要加形参,C/C++中可变参数的用法详细解析

    可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是int,double还可以是char*,类,结构体等等.可变参数是实现printf(),sprintf()等函数的关键之处, ...

  7. 【C/C++ POD 类型】深度解析C++中的POD类型:从理论基础到项目实践

    深度解析C++中的POD类型:从理论基础到项目实践 1. C++中的POD类型(Plain Old Data) 1.1 POD类型的定义和特性 Trivial类型 Standard layout类型 ...

  8. gin ajax 获取请求参数,go的gin框架从请求中获取参数的方法

    前言: go语言的gin框架go里面比较好的一个web框架, github的start数超过了18000.可见此框架的可信度 如何获取请求中的参数 假如有这么一个请求: POST   /post/te ...

  9. python怎么从excel获取数据_python怎么从excel中读取数据?/python 读取 excle

    如何通过python快速输出数据库数据到excel 扩展库 xlrd 读excle xlwt 写excle 直接度就能下载 下载后使用 import xlrd 就可excle文件了 打开文件: xls ...

最新文章

  1. Worm HDU 2151
  2. Dosbox汇编环境下debug常用调试命令(二)
  3. ASP.NET MVC3 上传头像图片并截图
  4. 命名空间_python基础 13 类命名空间于对象、实例的命名空间,组合方法
  5. 二阶齐次线性微分方程的通解公式_数学考研辅导(数二)063|高数常微分方程6
  6. 2019年规划与目标
  7. 5款免费的项目管理软件(推荐收藏)
  8. 北京自由职业艺术人才首评职称 不看身份看业绩
  9. php script是什么,script是什么意思
  10. 出场、入场动画大全,基于NineOldAndroids轻松实现动画效果
  11. Postman使用技巧之三:用Postman生成Request代码
  12. class的操作:className和classList
  13. 判断多边形的凹凸性和计算多边形面积:利用向量叉乘
  14. Android开发——编译FFmpeg(一、前言)
  15. html5 racing 游戏,RacingMaster赛车大师
  16. 拍照比“剪刀手”会泄露指纹信息,1.5米之内百分百还原。
  17. 证明:任何一个正整数均可以表示为两个互质整数的和
  18. 恶搞!关闭程序进程!!嘿嘿嘿~
  19. Calendar中 DAY_OF_MONTH, DAY_OF_YEAR, DATE 的区别
  20. deepin更新失败_linux deepin 系统升级失败解决办法

热门文章

  1. 图解 MySQL 索引,清晰易懂,写得太好了…
  2. VUE 实现简单的电子围栏 (AMap)
  3. 嵩天《Python数据分析与展示》实例4:引力波的绘制
  4. JavaScript 中函数 柯里化风格的运用
  5. [附源码]JSP+ssm计算机毕业设计私家菜谱管理系统b8lby【源码、数据库、LW、部署】
  6. Unity捕鱼达人4-----鱼的游动动画以及死亡动画实现以及对应子弹击中鱼后造成伤害的实现和生成金币特效
  7. 手机维修基础 常见故障分析㈡
  8. 简单介绍如何制作.chm文件(以Java API文档为例)
  9. 设某磁盘有200个柱面,编号为0,1,2,…,199,磁头刚从第140道移到第143道完成了读写。若此时刻有9个磁盘请求分别对如下各道进行读写:86、147、91、177、94、150、102、175
  10. Solana CEO做客吉姆 · 克莱默《Mad Money》谈融资后规划