class Person是新类,正常
class Person(object):
.....
class Person(object):
def __init__(self):
print "Person"
self.name = None
self.gender = None
def getName(self):
return self.name
def getGender(self):
return self.gender
class Male(Person):
def __init__(self, name):
super(Male, self).__init__()
print "Hello Mr." + name
class Female(Person):
def __init__(self, name):
print "Hello Miss." + name
class Factory:
def getPerson(self, name, gender):
if gender == 'M':
return Male(name)
if gender == 'F':
return Female(name)
if __name__ == '__main__':
factory = Factory()
person = factory.getPerson("Chetan", "M")
Person
Hello Mr.Chetan
[Finished in 0.1s]
class Person():
def __init__(self):
print "Person"
self.name = None
self.gender = None
def getName(self):
return self.name
def getGender(self):
return self.gender
class Male(Person):
def __init__(self, name):
super(Male, self).__init__()
print "Hello Mr." + name
class Female(Person):
def __init__(self, name):
print "Hello Miss." + name
class Factory:
def getPerson(self, name, gender):
if gender == 'M':
return Male(name)
if gender == 'F':
return Female(name)
if __name__ == '__main__':
factory = Factory()
person = factory.getPerson("Chetan", "M")
Traceback (most recent call last):
File "C:\Users\jackliu\Desktop\traindir\1q.py", line 32, in <module>
person = factory.getPerson("Chetan", "M")
File "C:\Users\jackliu\Desktop\traindir\1q.py", line 25, in getPerson
return Male(name)
File "C:\Users\jackliu\Desktop\traindir\1q.py", line 15, in __init__
super(Male, self).__init__()
TypeError: super() argument 1 must be type, not classobj
[Finished in 0.1s with exit code 1]
class Person():
.....
经典类报错