First page Back Continue Last page Overview Image

Parameter Check mit Dekorateuren

def argument_test_natural_number(f):

def helper(x):

if type(x) == int and x > 0:

return f(x)

else:

raise Exception("Argument is not an integer")

return helper

@argument_test_natural_number

def is_prime(n):

return all(n % i for i in range(2, n))

for i in range(1,10):

print(i, is_prime(i))

print(is_prime(-1))

1 True

2 True

3 True

4 False

5 True

6 False

7 True

8 False

9 False

Traceback (most recent call last):

File "/home/bernd/deco_test.py", line 60, in <module>

print(is_prime(-1))

File "/home/bernd/deco_test.p.py", line 50, in helper

raise Exception("Argument is not an integer")

Exception: Argument is not an integer

29.608813203268074 18.84955592153876