<pre><code> class Student():
_instance = None
def __new__(cls, *args, **kwargs):
if cls._instance is None:
print("creating new object")
cls._instance = super(Student, cls).__new__(cls)
return cls._instance
def __init__(self, sid, name, addr, phno, mailid, sec, year, sub):
self.sid = sid
self.name = name
self.addr = addr
self.phno = phno
self.mailid = mailid
self.sec = sec
self.year = year
self.sub = sub
def printStudent(self):
print("name",self.name,"sid",self.sid,"sec",self.sec,"year",self.year,"sub",
self.sub, "address",self.addr,"mailid",self.mailid,"phno",self.phno)
class Sports(Student):
def __init__(self, nofsports, nofawards, sid, name, addr, phno, mailid, sec, year, sub):
super().__init__(sid, name, addr, phno, mailid, sec, year, sub)
self.nofsports = nofsports
self.nofawards = nofawards
def printSports(self):
print("name", self.name)
s2 = Sports(2,2,2,"name2","addr2",1221232332,"std1@gmail.com",1,2020,"math")
s2.printSports()
s3 = Sports(2,2,2,"name3","addr3",56516516,"std3@gmail.com",1,2020,"phy")
s3.printStudent()
s2.printStudent()
</code></pre>
<p>***</p>
<pre><code>creating new object
name name2
name name3 sid 2 sec 1 year 2020 sub phy address addr3 mailid std3@gmail.com phno 56516516
name name3 sid 2 sec 1 year 2020 sub phy address addr3 mailid std3@gmail.com phno 56516516
</code></pre>
<p>***</p>
<p>希望这将帮助您了解更多,创建子类的对象而不是创建基类的对象。此外,基类被设置为单例类,因此只存在一个对象</p>