我在Java背景下学习Python(3.x)。
我有一个python程序,我在其中创建一个personObject并将其添加到列表中。p = Person("John")
list.addPerson(p)
但为了灵活性,我还希望能够直接在addPerson方法中声明它,如下所示:list.addPerson("John")
addPerson方法将能够区分我发送的是Person对象还是字符串。
在Java中,我将创建两个独立的方法,如下所示:void addPerson(Person p) {
//Add person to list
}
void addPerson(String personName) {
//Create Person object
//Add person to list
}
我不知道如何在Python中实现这一点。我知道一个type()函数,可以用来检查参数是字符串还是对象。不过,这对我来说似乎很混乱。还有别的办法吗?
编辑:
我想替代的解决方法应该是这样的(python):def addPerson(self, person):
//check if person is string
//Create person object
//Check that person is a Person instance
//Do nothing
//Add person to list
但与Java中的重载解决方案相比,这似乎有些混乱。