使用面向對象思想,利用封裝和繼承書寫代碼
class Student:
def __init__(self,name,sno,age,sex):
self.name = name
self.sno = sno
self.age = age
self.sex = sex
# 學習
def study(self,subject):
print(f"{self.name}學習的內容爲:{subject}")
class PrimaryStudent(Student):
def fight(self):
print(f"{self.name}在外面打架")
class MiddleStudent(Student):
def amativeness(self):
print(f"{self.name}正在談戀愛")
class CollegeStudent(Student):
def study(self):
print("逃課中。。。。。。。")
def play_game(self):
print(f"{self.name}在打英雄聯盟")
# 小學生對象
ps = PrimaryStudent("tom","20200601",18,"男")
ps.study("語文 數學 英語")
ps.fight()
# 中學生對象
ms = MiddleStudent("the bug","20200602",19,"女")
ms.study("語數外 生物化 史地政")
ms.amativeness()
# 大學生對象
cs = CollegeStudent("the shy","20200603",20,"男")
cs.study()
cs.play_game()
class Animal:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
class Dog(Animal):
def __str__(self):
return f"""
寵物狗:
暱稱是:{self.name}
年齡是:{self.age}
性別:{self.sex}
會兩條腿行走的才藝
"""
class Cat(Animal):
def __str__(self):
return f"""
寵物貓:
暱稱是:{self.name}
年齡是:{self.age}
性別:{self.sex}
會裝死的才藝
"""
class Person:
def __init__(self,host,guest):
self.host = host
self.guest = guest
def show(self):
print(f"主人{self.host}向客人{self.guest}介紹自己家的寵物貓,寵物狗")
dog = Dog("貝貝",2,"雌")
cat = Cat("花花",2,"雄")
person = Person("楊夫人","李小姐")
person.show()
print(dog,cat)
3、設計⼀個Person,包含姓名、年齡和性別三個私有成員屬性,另外Person類還包含males和females兩個私有類屬性,⽤來記錄男⽣和⼥⽣的數量, 可以通過number_male和number_female兩個公有類⽅法獲取males和females兩個私有類屬性的值。⾃⼰完成Person類的設計,然後實例化多個Person的對象, 分別統計男⼥的⼈數
class Person:
__males = 0 # 私有類屬性
__females = 0 # 私有類屬性
def __init__(self,name,age,sex):
self.__name = name
self.__age = age
self.__sex = sex
if self.__sex == '男':
self.__class__.__males += 1 # __class__ 當前對象所處的類,然後調用類屬性
else:
self.__class__.__females += 1
@classmethod # 類方法裝飾器
def number_males(cls):
print(cls.__males)
@classmethod
def number_females(cls):
print(cls.__females)
# 析構函數,刪除,對應減一
def __del__(self):
if self.__sex == '男':
self.__class__.__males -= 1
else:
self.__class__.__females -= 1
p1 = Person('tom',18,'男')
p2 = Person('tom1',17,'女')
p3 = Person('tom2',19,'男')
p4 = Person('tom3',18,'男')
p5 = Person('tom4',18,'女')
p6 = Person('tom5',17,'男')
p7 = Person('tom5',20,'女')
p8 = Person('tom6',18,'男')
p9 = Person('tom7',21,'男')
Person.number_males()
Person.number_females()
# -*- coding: utf-8 -*-
# @File : 工資管理系統.py
# 描述 :
# @Time : 2020/6/6 13:00
# @Author : 崔
# @versions : 1.0
class Staff:
def __init__(self,id,name):
self.__id = id
self.__name = name
self.wage = 0
@property
def get_name(self):
return self.name
@get_name.setter # 可寫屬性 先定義讀 才能定義寫
def set_name(self):
return self.name
@property # 可讀
def get_id(self):
return self.id
def Calculate_salary(self):
return self.wage
class Worker(Staff):
def __init__(self,id,name,hour_num,hour_wage):
"""
:param id: 工號
:param name: 姓名
:param hour_num: 工作小時數
:param hour_wage: 時薪
"""
super().__init__(id,name)
self.hour_num = hour_num
self.hour_wage = hour_wage
def Calculate_salary(self):
self.wage = self.hour_num * self.hour_wage
return self.wage
class Salesman(Staff):
def __init__(self,id,name,sales,sales_percentage):
"""
:param sales: 銷售額
:param sales_percentage: 提成比例,小數
"""
super().__init__(id,name)
self.sales = sales
self.sales_percentage = sales_percentage
def Calculate_salary(self):
self.wage = self.sales * self.sales_percentage
return self.wage
class Manager(Staff):
def __init__(self,id,name,month_money):
"""
:param month_money: 月薪
"""
super().__init__(id,name)
self.month_money = month_money
def Calculate_salary(self):
self.wage = self.month_money
return self.wage
class Salemanger(Staff):
def __init__(self,id,name,month_money,sales,sales_percentage):
"""
:param month_money: 月薪
:param sales: 銷售額
:param sales_percentage: 提成,小數
"""
super().__init__(id,name)
self.month_money = month_money
self.sales = sales
self.sales_percentage = sales_percentage
def Calculate_salary(self):
self.wage = self.sales * self.sales_percentage + self.month_money
return self.wage
worker = Worker("20200601","小明",10,300)
salesman = Salesman("20200701","Jack",8000,0.15)
manager = Manager("20200801","Tom",10000)
salemanger = Salemanger("20201111","shy",6000,20000,0.2)
m1 = worker.Calculate_salary()
m2 = salesman.Calculate_salary()
m3 = manager.Calculate_salary()
m4 = salemanger.Calculate_salary()
print(f"{worker.name}:{m1}\n{salesman.name}:{m2}\n{manager.name}:{m3}\n{salemanger.name}:{m4}")