这是使用函数自动执行对象实例化的理想方法吗?

时间:2019-02-27 07:44:47

标签: python function oop

我正在尝试用Python设计一个函数,该函数根据用户输入实例化许多对象。我推导了一个可行的方法,它看起来如下

class Node(): ...

def initialise():
    binary_tree=[]
    opt=int(input("Enter the number of nodes you want\n"))
    for i in range(opt):
        a=Node()
        binary_tree.append(a)

尽管我不确定这是否是理想的方法。

是否有更好的方法来对诸如我所描述的函数进行编程,或者上述方法是否足以提高效率和清晰度?

感谢您的答复,谢谢。

1 个答案:

答案 0 :(得分:0)

您的代码似乎可以正常工作。

还有其他选择格式的选项;例如,您可以使用列表理解,它可能比使用.append()更快,并且使用的代码也更少:

def initialise():
    opt = int(input("Enter the number of nodes you want\n"))

    return [
        Node()
        for _ in range(opt)]

谨慎:如果使用者输入了无法转换为ValueError的字符串,则此代码(以及您的版本)可能会引发int