相关疑难解决方法(0)

列表和元组之间有什么区别?

有什么不同?

元组/列表的优点/缺点是什么?

python tuples list

975
推荐指数
14
解决办法
40万
查看次数

什么是Python中的"命名元组"?

阅读Python 3.1中更改,我发现了一些......意外的:

sys.version_info元组现在是一个命名元组:

我之前从未听说过命名元组,我认为元素可以用数字(如元组和列表)或键(如dicts)索引.我从没想过他们可以两种方式编入索引.

因此,我的问题是:

  • 什么叫元组?
  • 怎么用?
  • 为什么/何时应该使用命名元组而不是普通元组?
  • 为什么/何时应该使用普通元组而不是命名元组?
  • 是否有任何类型的"命名列表"(命名元组的可变版本)?

python tuples namedtuple

843
推荐指数
9
解决办法
32万
查看次数

如何使用类型提示指定多个返回类型

我在python中有一个函数可以返回a bool或a list.有没有办法使用类型提示指定返回类型.

例如,这是正确的方法吗?

def foo(id) -> list or bool:
      ...
Run Code Online (Sandbox Code Playgroud)

python return-type type-hinting python-3.x python-3.5

141
推荐指数
4
解决办法
4万
查看次数

具有两个或多个返回参数的函数注释

当我为返回一个参数的函数编写注释时,我没有任何问题。

def func() -> str:
    return "ok"
Run Code Online (Sandbox Code Playgroud)

但是,当我编写带有两个或多个参数的注释时,我的PyCharm给了我SyntaxError: invalid syntax

def func() -> str, str:
    return "ok - 1", "ok - 2"
Run Code Online (Sandbox Code Playgroud)

我认为参数可以与组合使用tuple,但是我认为这不是最好的方法。

我的问题是:如何正确注释带有两个或多个返回参数的函数?

请在您的回复中加入PEP链接(如果有)。我在PEP 484PEP 3107上寻找答案,但找不到。

python type-hinting python-3.x

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

Python注释:元组和()之间的区别

既然python 3.6(或3.4?我不记得了)我们可以注释一个函数.例如:

def getVersion() -> str:
Run Code Online (Sandbox Code Playgroud)

现在当函数返回一个元组时会发生什么?我们能做到这一点:

def func() -> tuple:
Run Code Online (Sandbox Code Playgroud)

但是,如果我们知道元组是两个整数的元组?我在这里阅读:如何注释多个返回值的类型?我们可以这样做:

def func() -> Tuple[int, int]
Run Code Online (Sandbox Code Playgroud)

但它需要导入typing模块.

我也试过了:

def func() -> (int, int):
Run Code Online (Sandbox Code Playgroud)

它不会崩溃.

什么是正确的方法?

python annotations

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

如何注释自定义类型 __iter__ 以正确指示非统一返回类型?

我有一个自定义类型,我想启用它的值解包(元组解包等)。我知道在 Python 中执行此操作的最简单方法是实现__iter__. 这在运行时效果很好,但我想提供类型注释,以便为每个项目返回正确的类型,例如:

import typing as t
from dataclasses import dataclass

@dataclass
class Foo:
    a: str
    b: bool

    def __iter__(self) -> t.Iterable[str, bool]:
        yield self.a
        yield self.b

Run Code Online (Sandbox Code Playgroud)

在运行时,这按预期工作:


string, bool = Foo("Hello", False)
Run Code Online (Sandbox Code Playgroud)

但是,string以上bool内容均报告为Any类型。是否有一种合理的方法可以在保留类型的同时提供此用例?

现实世界的类型不容易转换为 NamedTuple 等。

类似于如何注释多个返回值的类型?

python mypy python-typing

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

函数返回多个返回值的Python类型提示

如何使用Python类型提示编写函数声明,以便函数返回多个返回值?

是否允许以下​​语法?

def greeting(name: str) -> str, List[float], int :

// do something

return a,b,c
Run Code Online (Sandbox Code Playgroud)

python type-hinting python-3.x typehints

3
推荐指数
3
解决办法
88
查看次数

将属性设置为数据类中的多种类型 - Python 3.9.x

我正在使用dataclass装饰器。

对于我的一个变量,我希望它是 astrint类型

from dataclasses import dataclass

@dataclass
class Foo:
    test_var: str
    # test_var: int

    def get_example(self):
        return type(self.test_var)
Run Code Online (Sandbox Code Playgroud)

当对象被构造时,我希望 fortest_var是 astr或 an ;如何为我的类的属性指定两种类型?intFoo

python oop object

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