type-hinting相关内容
根据PEP 484的说法,在现代版本的Python中,可以使用函数注释进行静态类型分析。通过打字模块可以轻松完成此操作。 现在我想知道如何将";type hint";发送给";文件流";。 def myfunction(file: FILETYPE): pass with open(fname) as file: myfunction(
..
this answer建议在class级别使用import命令来加载其定义可以移动到其他模块的方法。作为一个最小的例子, class_def.py: class C: from _methods import m _methods.py: def m(self): return "hello" 通常,大多数功能代码完成的IDE都会将某些类中定义的函数识别为
..
我刚刚将PyCharm更新到最新版本,但我一直在处理此错误消息时遇到问题。基本上,我无法关闭显示";Python version3.5不支持变量批注的错误消息。"; 我的默认和项目解释器是Python3.6,而且我甚至没有在PyCharm中添加Python3.5,因此对此有任何帮助将不胜感激。 部分图片: 编辑:使用项目解释器设置的另一张图片更新: 推荐答案
..
我想在for循环中注释一种类型的变量。我尝试过此操作,但不起作用: for i: int in range(5): pass 我期望的是PyCharm 2016.3.2中的自动完成功能,但使用 前置批注不起作用: i: int for i in range(5): pass P.S.预注适用于PyCharm>;=2017.1。 推荐答案 根据PE
..
我一直在尝试在 PHP 中更多地使用类型提示.今天我正在编写一个带有默认参数的布尔函数,我注意到表单的函数 函数 foo(boolean $bar = false) {var_dump($bar);} 实际上抛出了一个致命错误: 具有类类型提示的参数的默认值只能为 NULL 一个类似形式的函数 函数 foo(bool $bar = false) {var_dump($bar);}
..
function foo ($a): 混合{如果 ($a == 1)返回真;别的返回“富";}var_dump(foo(1)); 由于 mixed 不是真正的类型,因此会导致: 致命错误:未捕获的类型错误:foo() 的返回值必须是混合实例... 有没有办法在 mixed 返回值中键入提示,或者在这种类型的场景中您根本不声明类型提示? 解决方案 类型提示用于对传递或返回的值实
..
我有一个类,我希望属性的初始值为 None: class SomeClass:def __init__(self):self.some_attribute = 无 如何添加类型提示,以便 IDE 了解 some_attribute 通常属于 AnotherClass 类型? 解决方案 在 Python 3.5 中,你必须写 self.some_attribute = None # t
..
php 7 是否支持类属性的类型提示? 我的意思是,不仅针对 setters/getters,还针对属性本身. 类似: 类 Foo {/**** @var 酒吧*/公共 $bar : 酒吧;}$fooInstance = new Foo();$fooInstance->bar = new NotBar();//错误 解决方案 PHP 7.4 将支持类型化属性 像这样: 类人{公
..
我有很多函数,它们要么具有数组类型提示,要么使用 is_array() 来检查变量的数组特性. 现在我开始使用可迭代的对象.它们实现 Iterator 或 IteratorAggregate.如果它们通过类型提示或经过 is_array(),它们会被作为数组接受吗? 如果我必须修改我的代码,是否有一种通用的 is_iterable(),或者我必须这样做: if ( is_array(
..
当涉及到构造函数、赋值和方法调用时,PyCharm IDE 非常擅长分析我的源代码并确定每个变量应该是什么类型.我喜欢它正确的时候,因为它给了我很好的代码完成和参数信息,如果我尝试访问一个不存在的属性,它会给我警告. 但是当涉及到参数时,它什么都不知道.代码完成下拉菜单无法显示任何内容,因为它们不知道参数的类型.代码分析无法查找警告. 类人:def __init__(自我,姓名,年龄):s
..
我在 Python 3 中有以下代码: 类位置:def __init__(self, x: int, y: int):自我.x = x自我.y = ydef __add__(self, other: Position) ->位置:返回位置(self.x + other.x,self.y + other.y) 但我的编辑器 (PyCharm) 说无法解析参考 Position (在 __add_
..
我已经更新了我的类定义以使用新引入的属性类型提示,如下所示: class Foo {私人 int $id;私人 ?string $val;私人日期时间接口 $createdAt;私人?DateTimeInterface $updatedAt;公共函数 __construct(int $id) {$this->id = $id;}公共函数 getId(): int { return $this->
..
我正在尝试创建一个小 Clojure 宏,它 def 是一个带有类型提示的字符串: (defmacro def-string [名称值]`(def ^String ~name ~value))(def-string db-host-option "db-host") 当我macroexpand它时,类型提示丢失了: (macroexpand '(def-string db-host-opti
..
更新:PHP 7.4 现在支持协方差和逆变解决了这个问题中提出的主要问题. 我在 PHP 7 中使用返回类型提示时遇到了一些问题.我的理解是提示 : self 意味着您打算让实现类返回自身.因此,我在接口中使用了 : self 来表明这一点,但是当我尝试实际实现接口时,我遇到了兼容性错误. 以下是我遇到的问题的简单演示: 接口 iFoo{公共函数 bar (string $baz)
..
这是我的代码: function phpwtf(string $s) {echo "$s\n";}phpwtf("类型提示是炸弹"); 导致此错误的原因: 可捕获的致命错误:传递给 phpwtf() 的参数 1 必须是字符串的实例,给定的字符串 看到 PHP 同时识别和拒绝所需的类型,这不仅仅是一点奥威尔式的.有五个灯,该死. PHP 中字符串类型提示的等价物是什么?对准确解
..
我想在 for 循环中注释变量的类型.我试过这个: for i: int in range(5):经过 但显然没有用. 我期望在 PyCharm 2016.3.2 中自动完成.像这样的预注释: i: int对于范围内的 i (5):经过 没有帮助. 附言PyCharm 的预注释 >= 2017.1 解决方案 根据 PEP 526,这是不允许的: 此外,不能注释fo
..
我正在使用 Python 3 打字功能以实现更好的自动完成. 很多时候我有返回键/值(字典)和特定键的函数.超级简单的例子: def get_info(name):name_first_letter = 名称[0]返回 {'my_name': name, 'first_letter': name_first_letter} 我想给这个函数添加类型提示,告诉其他使用这个函数的人期待什么.
..
假设我有一个函数: def get_some_date(some_argument: int=None) ->%datetime_or_None%:如果 some_argument 不是 None 并且 some_argument == 1:返回日期时间.utcnow()别的:返回无 如何为可以为 None 的内容指定返回类型? 解决方案 您正在寻找 可选. 由于您的返回类型可以
..
我有一个函数只能返回a、b或c,它们都是T类型的代码>.我想在签名中包含这个事实,因为它们在函数的上下文中具有特殊的含义.我该怎么做? 目前,我使用这个 def fun(...) ->“a或b或c":#简要解释文档字符串中 a、b 和 c 的含义 这是正确的吗? 我知道我可以做到这一点 def fun(...) ->:# 简要解释其文档字符串中 a、b 和 c 的含义 但正如我
..
我在下面包含的代码会引发以下错误: NameError: name 'Vector2' 未定义 在这一行: def 翻译(自我,位置:Vector2): 为什么 Python 在 Translate 方法中无法识别我的 Vector2 类? 类 Vector2:def __init__(self, x: float, y: float):自我.x = x自我.y = ydef 翻译(自
..