-1

实际上,当我display()通过它调用方法时,obj2它应该向我显示NULL值。预期输出应该是Details Null Null Null Null Null . 我该怎么做?

class Human:
    def __init__(self, fname, mname, lname, age, gender):
        self.fname = fname
        self.mname = mname
        self.lname = lname
        self.age = age
        self.gender = gender
    def display(self):
        print "Details", self.fname, self.mname, self.lname, self.age, self.gender

obj1 = Human('John','W','Cooper',23,'Male')
obj1.display()
obj2 = Human()
obj2.display()
4

2 回答 2

3

obj2 = Human()

在这里,您正在创建一个需要 6 个参数的实例(Python 添加一个),但您只添加一个(Python 添加的那个)。

如果你想要它,那么如果你什么都不添加,参数是None,你应该这样做:

def __init__(self, fname=None, mname=None, lname=None, age=None, gender=None):

None除非另有说明,否则这将使所有参数。

于 2013-10-17T07:29:09.627 回答
2

您需要为构造函数的参数指定默认值。

所以,你想做的是这样的:

def __init__(self, fname=None, mname=None, lname=None, age=None, gender=None):

另外,请注意 python 使用None,而不是NULL.

于 2013-10-17T07:29:56.727 回答