0

假设我在 python 中有这个函数:

def get_thing(rule):
    if rule == 0:
        return 5         #<<<< int
    elif rule == 1:
        return 'Hello'   #<<<<< string
    else:
        return Student() #<<<<< Object

上述函数根据规则返回不同的值(int 或字符串或对象)。

我应该使用上述功能还是使用此功能:

def get_int()
    return 5

def get_string()
    return 'Hello'

def get_student()
    return Student()

我的意思是函数返回不同的数据类型或值是pythonic吗?

在 java 中,您只能返回一种类型,例如:仅字符串。

我希望你能理解我的问题:)

谢谢。

编辑:其他例子

def get_person(id):
    if #id is belongs to student:
        return Student()
    elif #id belongs to teacher
        return Teacher()
4

1 回答 1

0

从 Python 中的函数返回不同类型的值是可以的。就实现而言,考虑使用字典而不是嵌套的 if,例如:

def get_thing(rule):
    return { 0 : 5, 1 : 'Hello'}.get(rule, Student())
于 2013-05-12T00:02:42.010 回答