【高级特性】47、上机练习:类和对象

2021-05-30  本文已影响0人  看远方的星
class People:                                 
    def __init__(self, name, city):           
        self.name = name                      
        self.city = city                      
    def __str__(self):                        
        return '<%s:%s>'%(self.name,self.city)
    __repr__ = __str__                        
    def moveto(self,newcity):                 
        newcity = self.newcity                
                                              
    def __lt__(self,other):                   
        return self.city<other.city           
                                              
k = list()                                    
k.append(People('jack', 'Zhangzhuo'))         
k.append(People('erica','Beijing'))           
k.append(People('Celia','Guangdong'))         
k.append(People('David','Cesuo'))             
print("original:",k)                          
                                              
k.sort()                                      
print("sorted:",k)                            
                                              
class Teacher(People):                                                         
    def __init__(self, name, city, school):  # 继承父类,并添加子类独有属性                  
        super().__init__(name, city)  # super函数用来调用已经在子类中重写过的父类方法              
        self.school = school                                                   
                                                                               
    def __lt__(self, other):                                                   
        return self.school > other.school                                      
                                                                               
    def newschool(self, ns):                                                   
        self.school = ns                                                       
                                                                               
    def __repr__(self):  # repr特殊函数返回字符串                                       
        return f'{self.name},{self.school}'                                    
                                                                               
f = []                                                                         
f.append(Teacher('jack', 'fjing', '北大'))                                       
f.append(Teacher('Lucy', 'shanghai', '复旦'))                                    
f.append(Teacher('Tom', 'guangdong', '澳大'))                                    
f.append(Teacher('rose', 'hunan', '湖大'))                                       
                                                                               
print("original:", f)                                                          
                                                                               
f.sort()                                                                       
print("sorted:", f)   
                                                                                                                                        
class mylist(list):
    def product(self):
        s = 1
        for i in self:
            s *= i
        return s

R = mylist([2, 3, 4, 5])
cj = R.product()
print(cj)
上一篇 下一篇

猜你喜欢

热点阅读