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)?
请参阅您链接到的PEP中摘要的第五段:
尽管这些注释可以在运行时通过常用__annotations__属性使用, 但在运行时不会进行类型检查 。相反,该提案假定存在一个单独的脱机类型检查器,用户可以自愿运行其源代码。
__annotations__