如何调用多个功能

时间:2013-12-13 13:58:14

标签: python

我有一个程序可以检查社会保障数量是否有效。现在,程序是一个很大的功能,它逐步检查我为几个异常输入的数字。

我想将这个大功能分成几个不同的功能,但我不知道怎么也不知道如何连续调用所有函数,他们将依赖于之前的函数结果。我要试着说明它是怎么样的:

#i want to make this into a separate function
def numberchecker(number):
    if number > 15:
        print('bad')

#i want to make this into a separate function
    number1 = number.replace('-', '')
    number2 = number1.replace(' ', '')

#i want to make this into a separate function
    month= int(number1[2:][:2])
    if month > 13:
        print('very bad')

当一些函数依赖于彼此的变量时,我该怎么做:/

2 个答案:

答案 0 :(得分:1)

你的第一部分已经是一个功能,但会混淆数字和字符串:

def check_num(num):
    return num <= 15

你的第二部分是一个字符串处理函数:

def process_num(num):
    return str(num).replace("-", "").replace(" ", "")

和第三个进入布尔函数

def correct_month(str_num):
    return 1 <= str_num[2:4] <= 12

现在将它们串在一起:

if check_num(num):
    str_num = process_num(num)
    if not correct_month(str_num):
        print('very bad')
else:
    print('bad')

您尝试做的关键部分是在函数末尾return一个值(在这些情况下,两个布尔值和一个字符串),因此其他函数可以继续使用它。

答案 1 :(得分:0)

如果你所做的只是验证,那么所有函数都返回True或False,例如:

def numberchecker (number):
    return number > 15

然后你可以这样做:

all([numberchecker, current_month, ....])