- 定義一個學生類。有屬性:姓名、年齡、成績(語文,數(shù)學,英語)[每課成績的類型為整數(shù)] 方法:
a. 獲取學生的姓名:getname()
b. 獲取學生的年齡: getage()
c. 返回3門科目中最高的分數(shù):get_course()
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
self._score = []
@property
def score(self):
for _ in self._score:
return '語文:%d 數(shù)學:%d 英語:%d' % (self._score[0], self._score[1],self._score[2])
@score.setter
def score(self, value: list):
for grade in value:
if not isinstance(grade, int):
print('成績只能是整數(shù)')
break
else:
self._score = value
def get_name(self):
return self.name
def get_age(self):
return self.age
def get_course(self):
return max(self._score)
?
# 1.創(chuàng)建學生類
stu1 = Student('郭銳', 23)
stu1.score = [89, 92, 98]
print(stu1.name)
print(stu1.get_age())
print(stu1.score)
print(stu1.get_course())
-
2.建立一個汽車類Auto,包括輪胎個數(shù),汽車顏色,車身重量,速度等成員變量,并通過不同的構(gòu)造方法創(chuàng)建實例。至少要求:汽車能夠加速,減速,停車。再定義一個小汽車類CarAuto 繼承Auto 并添加空調(diào)、CD等成員變量覆蓋加速減速的方法。
class Auto: tire_num = 4 def __init__(self, color='white', weight='56kg', speed=0): self.color = color self.weight = weight self.speed = speed def __repr__(self): return str(self.__dict__)[1:-1] def introduce(self): print('這輛車的顏色是%s, 重量為%s' % (self.color, self.weight)) def speed_up(self): self.speed += 80 print('我加速了,當前速度是%.2f' % self.speed) def speed_cut(self): self.speed += 20 print('我減速了,速度為%.2f' % self.speed) @classmethod def about_tire(cls): print('這個類的車都有%d個輪子' % cls.tire_num) @staticmethod def about_auto(): print('我們都是車,都是車,不準反駁') @staticmethod def park(): print('現(xiàn)在停車了') class Car(Auto): def __init__(self, ari_conditioner=4,about_cd='鳳凰傳奇',color='white', weight='56kg', speed=0): super().__init__() self.color = color self.weight = weight self.speed = speed self.conditioner = ari_conditioner self.CD = about_cd def speed_up(self): print('覆蓋加速') def speed_cut(self): print('覆蓋減速') # 2.創(chuàng)建Auto類以及子類Car auto1 = Auto() print(auto1) auto1.introduce() auto1.speed_cut() auto1.speed_up() auto1.park() car1 = Car() print(car1) car1.speed_up() car1.speed_cut()
? 3. 創(chuàng)建一個名為User的類,其中包含屬性?rstname 和 lastname ,還有用戶簡介通常會存儲的其他幾個屬 性。在類User 中定義一個名為describeuser() 的方法,它打印用戶信息摘要 ; 再定義一個名為 greetuser() 的 方法,它向用戶發(fā)出個性化的問候。
? 管理員是一種特殊的用戶。編寫一個名為Admin 的類,讓它繼承User類。添加一個名為privileges 的屬性,用于存儲一個由字符串(如"can add post"、"can delete post"、"can ban user"等)組成的列表。編寫一個名為 show_privileges()的方法,它顯示管理員的權(quán)限。創(chuàng)建一個Admin 實例,并調(diào)用這方法。
?
class User:
def __init__(self, first_name, last_name, tel, e_mail='1903910939@qq.com'):
self.first_name = first_name
self.last_name = last_name
self.tel = tel
self.e_mail = e_mail
def describe_user(self):
return str(self.__dict__)[1:-1]
def greet_user(self):
print('你好%s %s' % (self.first_name, self.last_name))
class Admin(User):
def __init__(self, first_name, last_name, tel, e_mail='1903910939@qq.com',
privileges=['can add post', 'can delete post', 'can ban user']):
super().__init__(first_name, last_name, tel)
self.privileges = privileges
def show_privileges(self):
print('權(quán)限:')
for item in self.privileges:
print(item, end=' ')
# 3.創(chuàng)建User類,admin繼承User
user1 = User('ChiAo', '1fei', '110')
print(user1.describe_user())
user1.greet_user()
admin1 = Admin('ChiAo', '1fei', '110')
admin1.show_privileges()
-
創(chuàng)建一個Person類,添加一個類字段用來統(tǒng)計Perosn類的對象的個數(shù)。
class Person: count1 = 0 def __init__(self, name='小花', age=18): Person.count1 += 1 self.name = name self.age = age @classmethod def count(cls): return cls.count1 # 4.Person對象的個數(shù) p1 = Person() p2 = Person() print() print(Person.count())