Python 3.5类型提示不会导致错误

发布于 2021-01-29 14:57:33

python
3.5的新功能之一是受此项目启发的类型提示。

键入:PEP 484 –键入提示。

我想测试它,但是它没有按预期工作。

import typing

class BankAccount:
    def __init__(self, initial_balance: int = 0) -> None:
        self.balance = initial_balance
    def deposit(self, amount: int) -> None:
        self.balance += amount
    def withdraw(self, amount: int) -> None:
        self.balance -= amount
    def overdrawn(self) -> bool:
        return str(self.balance < 0)

my_account = BankAccount(15)
my_account.withdraw(5)
print(type(my_account.overdrawn()))

结果是:

<class 'str'>

我期待一个错误,因为我期望布尔作为回报。我在python:3.5(docker)和local上测试了它。我是否想念一些东西以使其起作用?这种键入是否在运行时不起作用(例如python
app.py)?

关注者
0
被浏览
62
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    请参阅您链接到的PEP中摘要的第五段:

    尽管这些注释可以在运行时通过常用__annotations__属性使用, 但在运行时不会进行类型检查
    。相反,该提案假定存在一个单独的脱机类型检查器,用户可以自愿运行其源代码。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看