如何为类型定义别名以使用类型提示:
import typing
type Ticker str # How to do this? I used golang notation. How do you do it in python?
Report = typing.Dict[Ticker, typing.List]
Run Code Online (Sandbox Code Playgroud)
这意味着 Ticker 是一种字符串,Report 是从 Ticker 到列表的字典。谢谢你。这种别名的好处是任何人都知道它是一个自动收报机。比编写 Report = typing.Dict[str, typing.List] 更清晰、更易读
我有这个代码,可以在我的txt中添加一个人.但在名称中,例如,我想只允许字母.和年龄一样,我只想允许数字
add = do
putStrLn "Name:"
name <- getLine
putStrLn "Age:"
age <- getLine
let new = (name ++ " "++ idade ++ "\n")
appendFile "funcionarios.txt" new
putStrLn "Success!"
Run Code Online (Sandbox Code Playgroud) 我无法输入mapStateToProps的“状态”参数
如果我只是改变state : any而不是state: AppState它的作品,没有错误。但是我想为我的state参数输入正确的类型。
现在,我在connect()的mapStateToProps参数上遇到此错误
没有重载匹配此调用。最后一次重载给出了以下错误。类型'(state:{测验:IQuizInitialState;})=> StateProps'的参数不可分配给'MapStateToPropsParam'类型的参数。无法将类型'(state:{测验:IQuizInitialState;})=> StateProps'分配为'MapStateToPropsFactory'。参数“状态”和“初始状态”不兼容。类型“ {}”中缺少属性“测验”,但类型“ {{测验:IQuizInitialState; }'。ts(2769)
interface OwnProps {
}
interface StateProps {
}
interface DispatchProps {
}
type Props = OwnProps & StateProps & DispatchProps;
export class App extends Component<Props> {
render() {
return (
<div>Hey</div>
);
}
}
const mapStateToProps = (state: AppState): StateProps => ({
})
const mapDispatchToProps = (dispatch: ThunkDispatch<{}, {}, AnyAction>): DispatchProps => {
return {
}
}
// The args 'mapStateToProps' generate the error …Run Code Online (Sandbox Code Playgroud) 对于以下示例,mypy返回错误:
错误:赋值中的类型不兼容(表达式类型为“A”,变量类型为“A1”)
from typing import Type
class A:
pass
class A1(A):
pass
class A2(A):
pass
def fun(A_type: Type[A]) -> A:
if A_type == A1:
return A1()
else:
return A2()
a1: A1 = fun(A1)
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想做的是在以下签名中强制执行依赖项fun:
def fun(A_type: Type[A]) -> A_type
Run Code Online (Sandbox Code Playgroud)
这可能吗; 如果没有,推荐什么(注意:我希望它适用于尚未定义的子类A,所以我认为我不能使用overload装饰器)?我最好的选择只是使用cast吗?
LiteralPython 类型和类型之间有什么区别Union?
我看不出它们之间有什么区别。有人能解释一下吗?
当我使用 like 时,我的 IDE 没有响应我Union[2,3]。
我一直试图了解如何在 Python 中指定类方法的返回类型,以便即使对于子类也能正确解释(例如在我的 Sphinx 文档中)。
假设我有:
class Parent:
@classmethod
def a_class_method(cls) -> 'Parent':
return cls()
class Child(Parent):
pass
Run Code Online (Sandbox Code Playgroud)
a_class_method如果我希望它是Parent为父母和Child孩子的,我应该指定什么作为返回类型?我也试过__qualname__,但这似乎也不起作用。我应该不注释返回类型吗?
提前致谢!
我有一个函数,它的参数应该是integer或string。
from typing import int,str
def MyFunc(arg:int) -> None:
print(arg)
Run Code Online (Sandbox Code Playgroud)
但我想知道如何编写它来告诉用户 arg 可以是 int 和 str 吗?
我想在我的电脑上安装 pygame 当我输入pipcmd 我收到这个错误:
File "C:\Python34\Scripts\pip3-script.py", line 9, in <module>
load_entry_point('pip==21.1', 'console_scripts', 'pip3')()
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 558, in load_entry_point
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 2682, in load_entry_point
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 2355, in load
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 2361, in resolve
File "C:\Users\user\AppData\Roaming\Python\Python34\site-packages\pip\__init__
.py", line 1, in <module>
from typing import List, Optional
ImportError: No module named 'typing'
Run Code Online (Sandbox Code Playgroud) 我是使用Visual Basic开发的新手,但在C#/ C/C++/JAVA/Haskell和其他一些方面有很多经验.
有什么理由我维护代码并找到代码示例,其中类型声明似乎是懒惰的?我见过无数的字符串,它们只被用作String类型,被声明为一个对象.在VB.NET的面向对象特性出现之前,这是否有必要确保方法可以采用多种类型?为什么有人会这样做?
在"对Haskell的温和介绍"的第2章中,解释了用户定义的类型,然后认为内置类型除了特殊语法之外,与用户定义的类型没有什么不同:
之前我们介绍了几种"内置"类型,如列表,元组,整数和字符.我们还展示了如何定义新的用户定义类型.除了特殊的语法之外,内置类型是否比用户定义的类型更特殊?答案是不.(特殊语法是为了方便和与历史惯例保持一致,但没有语义后果.)
所以你可以定义一个类似于以下内容的元组:
data (a,b) = (a,b)
data (a,b,c) = (a,b,c)
data (a,b,c,d) = (a,b,c,d)
Run Code Online (Sandbox Code Playgroud)
哪个肯定你不能,因为那将需要无限数量的声明.那么这些类型实际上是如何实现的?特别是关于只能针对类型声明进行模式匹配的事实?
typing ×10
python ×6
haskell ×2
casting ×1
class-method ×1
inheritance ×1
list ×1
module ×1
mypy ×1
pip ×1
reactjs ×1
redux ×1
tuples ×1
type-hinting ×1
typescript ×1
vb.net ×1
vb6 ×1