标签: typing

如何在 Python 中为类型定义别名以进行类型提示

如何为类型定义别名以使用类型提示:

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] 更清晰、更易读

python typing type-hinting

1
推荐指数
1
解决办法
1790
查看次数

如何在Haskell getLine中只允许一种类型

我有这个代码,可以在我的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)

haskell typing

1
推荐指数
1
解决办法
96
查看次数

键入mapStateToProps React Redux

我无法输入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)

typing typescript reactjs redux

1
推荐指数
1
解决办法
192
查看次数

使用 mypy 的 Python 中的依赖类型和多态性

对于以下示例,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吗?

python typing dependent-type mypy

1
推荐指数
1
解决办法
1307
查看次数

Python 类型中 Literal 和 Union 有什么区别?

LiteralPython 类型和类型之间有什么区别Union

我看不出它们之间有什么区别。有人能解释一下吗?

当我使用 like 时,我的 IDE 没有响应我Union[2,3]

python typing

1
推荐指数
1
解决办法
3825
查看次数

Python:指定与继承一起使用的类方法的返回类型

我一直试图了解如何在 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__,但这似乎也不起作用。我应该不注释返回类型吗?

提前致谢!

python inheritance typing class-method

1
推荐指数
1
解决办法
461
查看次数

如何指定可以是整数或字符串的类型

我有一个函数,它的参数应该是integerstring

from typing import int,str

def MyFunc(arg:int) -> None:
    print(arg)
Run Code Online (Sandbox Code Playgroud)

但我想知道如何编写它来告诉用户 arg 可以是 int 和 str 吗?

python typing function-parameter

1
推荐指数
2
解决办法
1491
查看次数

导入错误:尝试安装包时没有名为“打字”的模块

我想在我的电脑上安装 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)

python module pip typing

1
推荐指数
2
解决办法
1万
查看次数

Visual Basic键入和转换问题

我是使用Visual Basic开发的新手,但在C#/ C/C++/JAVA/Haskell和其他一些方面有很多经验.

有什么理由我维护代码并找到代码示例,其中类型声明似乎是懒惰的?我见过无数的字符串,它们只被用作String类型,被声明为一个对象.在VB.NET的面向对象特性出现之前,这是否有必要确保方法可以采用多种类型?为什么有人会这样做?

vb.net vb6 casting typing

0
推荐指数
1
解决办法
353
查看次数

Haskell - 作为内置类型的元组和列表:它们是如何实际声明的?

在"对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)

哪个肯定你不能,因为那将需要无限数量的声明.那么这些类型实际上是如何实现的?特别是关于只能针对类型声明进行模式匹配的事实?

haskell tuples list typing

0
推荐指数
1
解决办法
117
查看次数