python3类型作为函数参数

时间:2019-07-23 08:45:23

标签: python-3.x types arguments python-decorators

是否可以像下面的示例一样将类型作为函数参数传递?

def test(*args):
    '''decorator implementation with asserts'''
    ...


@test(str, int)
def fn1(ma_chaine, mon_entier):
    return ma_chaine * mon_entier

@test(int, int)
def fn2(nb1, nb2):
    return nb1 * nb2

还是应该将它们作为字符串传递(例如@test('str', 'int)),并且在内部测试函数中将它们与ifelif一起使用?

2 个答案:

答案 0 :(得分:1)

行得通吗?

Private Sub List0_AfterUpdate()
Forms![Form1]![List2].Requery
End Sub

是的

您应该这样做吗?

Probably not

And some more information of type checking

答案 1 :(得分:0)

Python函数的参数与它的类型无关。

您可以传递任何类型的参数,并可以检查参数的类型。

很简单,您可以检查得到的参数类型。

尝试

def fn1(ma_chaine, mon_entier):
    if type(ma_chaine) == int && type(mon_entier) == int:
        return ma_chaine * mon_entier
    else:
        raise TypeError("Arguments should be 'int' type. Got '{}' type and '{}' type.".format(type(ma_chaine), type(mon_entier))