问题标签 [python-typing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python 类成员类型提示
我正在使用PyCharm
开发一些 Python 应用程序。我正在尝试尽可能使用最先进的 python,所以我正在使用新的 python 功能。我有一个问题type hinting
。
大家来看看我的DataAnalyzer
课:
现在 PyCharm 用黄色灯泡向我发送垃圾邮件,希望我在self.train_data
和self.test_data
. 如果我单击此消息来执行此操作,PyCharm 会在我的课程开头添加两行:
我想现在它看起来更好了,但是 AFAIK 通过像这样编写这些变量,我使它们成为static。
我想过像这样注释类型:
这绝对不清楚,但是当我不想时,我不会让我的班级成员成为静态的。
我知道,通过在方法签名中注释类型,在我分配这些类型时再执行一次,这是一种矫枉过正的做法,但我要求的是一般规则。我应该像 PyCharm 建议的那样注释那些类型,还是应该内联?
python - Python Type Hints ignored
I'm new to python and experimenting with type hints, however they only seem to work in some instances. They seem to work as expected on the property return type, however when I try to assign an integer to a string value (i.e. self._my_string = 4), I get no issues reported.
The resulting object then contains an int value (as expected).
I'm using pyCharm 2018.3.2 Community edition, the interpreter is 3.6
The following question seems to be similar, but the solution of changing the constructor to def __init__(self) -> None
does not change anything.
Python: All type hints errors in subclass constructure seems ignored
python - 为什么排序在类型提示中很重要?
为什么这样可以
但这不是吗?
我知道您在导入时不能有循环引用。但是,这不是导入的东西:它们都在同一个文件中。在这两种情况下,都定义了 Ship ,但似乎如果首先定义了 Fleet ,它就找不到 Ship 的定义。如果我曾经检查过类型,这不是真的。isinstance
但是,这不允许我的 IDE (PyCharm) 查看定义和自动完成语法。
事实上,以下设计模式似乎工作正常
但是,同样,不允许我的 IDE 找出类型。这是 Python 3.6.5/Anaconda/Windows 10。
python - 如何在类型提示系统中使用通用(高级)类型变量?
假设我想使用 mypy 编写一个泛型类,但该类的类型参数本身就是一个泛型类型。例如:
当我尝试在上面的定义中调用 mypy 时,出现错误:
我尝试向T
TypeVar
' 的定义添加约束,但未能成功。是否有可能做到这一点?
python - Typing - 函数返回值类型与表达式类型相同
考虑代码:
我怎么能说我希望返回类型与foo
返回类型相同bar()
?
在 C++decltype
中,我可以使用以下内容:
我找不到 Python 的等价物。有没有?
python - 确定对象的类型是否与通过类型模块定义的嵌套类型匹配
使用typing模块,可以指定任意嵌套类型,例如List[str]
或Dict[str, Dict[str, float]]
。有没有办法确定对象的类型是否与这种类型匹配?类似的东西
我真的没想到会isinstance()
为此工作,但我想知道是否有其他可接受的方式来做这件事。
django - 为模型中的 Django 字段指定类型(用于 Pylint)
我已经创建了基于 CharField 的自定义 Django 模型字段子类,但它使用 to_python 来确保返回的模型对象具有更复杂的对象(有些是列表,有些是具有特定格式的字典等)——我正在使用 MySQL所以某些 PostGreSql 字段类型不可用。
一切都很好,但 Pylint 认为这些字段中的所有值都是字符串,因此我在使用这些模型的代码上收到很多“不支持的成员资格测试”和“不可订阅的对象”警告。我可以单独禁用这些,但我更愿意让 Pylint 知道这些模型返回某些对象类型。类型提示没有帮助,例如:
我知道某些内置的 Django 字段为 Pylint(CharField,IntegerField)返回正确的类型,并且某些其他扩展已经找到了指定其类型的方法,因此 Pylint 很高兴(MultiSelectField)但是深入研究他们的代码,我无法弄清楚指定返回类型的“魔术”在哪里。
(注意:这个问题与 INPUT:type of Django form fields 无关)
谢谢!
python - Mypy 似乎忽略了 TypeVar 类型的界限
例如,我有一段代码如下:
我把它保存在type_check.py
. 如果我在其上运行 mypy,则会收到以下错误消息:
根据我对bound
in的理解TypeVar
,只要 aT
是 的子类SuperClass
,应该没问题。但是为什么 mypy 在这里抛出错误呢?谢谢!
python - 在 python 字典中为 mypy 指定键
假设我有一些代码
但是,我想告诉 mypyd
应该只包含某些键(例如只有“x”键)。这样,如果我在尝试引用无效键的代码中犯了错误d
,mypy 将触发错误。
我的问题是:
- 这可能吗?mypy 可以验证字典键吗?
- 如果是,这是如何完成的?如果没有,是否有首选的解决方法?