【发布时间】:2021-08-26 21:53:47
【问题描述】:
我想知道,有没有办法为函数的参数定义数据类型,在我的例子中是 def init 构造函数,这样当我创建一个对象时,我只能传递与设置的数据类型相关。
例如:
class Checking(BankAccount):
def __init__(self, acc_number, acc_holder, acc_balance):
self.acc_num = acc_number
self.acc_holder = acc_holder
self.acc_balance = acc_balance
random = Checking("A84829", "Roger ", "a637.23")
因此,当我随机创建对象并传递参数时,我希望程序无法运行,因为我输入了不正确的数据类型。现在,该程序可以运行,但我不知道为什么,因为我对 python 很陌生。
我也试过这样做:
class Checking(BankAccount):
def __init__(self, acc_number: int, acc_holder: str, acc_balance: float):
【问题讨论】:
-
Python 是一种动态类型语言,需要自己编写代码。或者使用库,例如
pydantic -
@juanpa.arrivillaga 抱歉,当您说自己为此编写代码时,我对您的意思有点困惑?
-
正如 juanpa.arrivillaga 所提到的,Python 像鸭子一样嘎嘎叫,“如果它看起来像鸭子,又像鸭子叫,那就是鸭子”关于类型(阅读:动态类型.. .) 您可以在此处查看 realpython-doc 以获取更多信息:realpython.com/python-type-checking 检查变量是否为特定类型的内置函数是
isinstance:docs.python.org/3/library/functions.html#isinstance -
@Aman 我的意思是你必须自己编写检查类型的代码。同样,有一些库可以处理这个问题,例如
pydantic -
@juanpa.arrivillaga 谢谢先生!
标签: python class constructor