小甲鱼 发表于 2022-6-6 01:10:36

本主题需向作者支付 10 鱼币 才能浏览 购买主题

万年老咸鱼 发表于 3 天前

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

mingzhu0 发表于 3 天前

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

ysl123456 发表于 4 天前

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:有多态函数

第 1 题的答案是:不管传入参数类型,只管是否有其方法

第 2 题的答案是:可以

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:不属于

-------- 动动手 --------

请将第 0 题的代码写在下方:

ALIERSAN 发表于 4 天前

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

mceduchina 发表于 2026-8-10 16:00:44

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

还有批脸笑 发表于 2026-8-7 16:51:52

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:子类继承父类重写父类同名方法 通过实例对象调用方法

第 1 题的答案是:没有多态要判断对象的类型 然后分支处理

第 2 题的答案是:可以 同一个加号 不同对象执行不同逻辑

第 3 题的答案是:如果它走起来像鸭子,游起来像鸭子,叫起来像鸭子,那它大概就是一只鸭子

第 4 题的答案是:

第 5 题的答案是:不是参数不同而已

-------- 动动手 --------

请将第 0 题的代码写在下方:

ZOCzhan 发表于 2026-8-6 11:24:31

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

shenrenK 发表于 2026-8-6 07:48:31

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

wangning_py 发表于 2026-8-2 14:42:12

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:
1.鸭子类型:不需要关心对象的具体类型或继承关系,只关心对象是否具备我们需要的方法或属性。
2.内置运算符的多态:Python 的内置操作符天然支持多态,底层是通过“魔术方法”(如 __add__)来实现的。同一个 + 号,面对不同的数据类型会表现出不同的行为
3.基于继承的方法重写:Python 也完全支持通过继承父类并重写(Override)父类方法来实现多态。
4.内置函数len()的多态:len() 可以作用于字符串、列表、字典等任何实现了 __len__ 方法的对象
第 1 题的答案是:
1.极强的可扩展性;
2.消除冗余的条件判断;
3.提高代码的复用性;
4.降低代码的耦合度
第 2 题的答案是:
可以成为多态
第 3 题的答案是:
"If it walks like a duck and quacks like a duck, it must be a duck."
(如果它走起来像鸭子,叫起来也像鸭子,那它一定就是只鸭子。)
第 4 题的答案是:
降低耦合
第 5 题的答案是:
不是多态,而是默认参数
-------- 动动手 --------

请将第 0 题的代码写在下方:

IYANG32 发表于 2026-7-29 17:49:20

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

变西瓜 发表于 2026-7-28 23:01:20

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

同样的方法面对不同对象有不同作用,比如 ‘*’ 号 整数和整数是相乘 ,字符串和整数是把该字符串复制int遍。

第 1 题的答案是:

灵活

第 2 题的答案是:

可以

第 3 题的答案是:

when i see a bird that walks like a duck swims like a duck quacks like a duck i call that bird a duck

第 4 题的答案是:

降低了耦合

第 5 题的答案是:

属于

-------- 动动手 --------

请将第 0 题的代码写在下方:



class BaseEmployee:

    def __init__(self,uid,name,job,grade,year):
      self.uid = uid
      self.name = name
      self.job = job
      self.grade = grade
      self.year = year
      



class Employee(BaseEmployee):

    def salary(self):
      return 3000 + 500 * self.grade + 50 * self.year


class Teamleader(BaseEmployee):

    def salary(self):
      return 4000 + 800 * self.grade + 100 * self.year


class Manager(BaseEmployee):

    def salary(self):
      return 5000 + 1000 * (self.grade + self.year)





class Manage:

    def __init__(self):
      self.emp = {}
      self.number = 9999
      self.all_job = {'E':'普通员工',
                           'T':'组长',
                           'M':'经理'}

      self.max_grade = {'E':10,
                     'T':6,
                     'M':3,}
      self.now_job = ['E','T','M']


    def set_employee(self):
      self.name = input('请输入员工姓名: ')
      self.job = input('职位(E.普通员工;T.组长;M.经理): ')
      self.year = int(input('员工工龄: '))
      self.grade = int(input('员工级别: '))

      
      
      while self.year < 0:
            print('员工工龄不能小于0,请重新输入: ')
            self.year = int(input('员工工龄: '))

      while self.grade < 1:
            print('员工级别不能小于1,请重新输入: ')
            self.grade = int(input('员工级别: '))

      while self.grade > self.max_grade:
            print(f'员工级别"{self.grade}"超过当前职位"{self.job}"的上限,请重新输入 ')
            self.job = input('职位(E.普通员工;T.组长;M.经理): ')
            self.grade = int(input('员工级别: '))
            
      self.number += 1
      

      

      if self.job == 'E':
            self.emp = Employee(self.number,self.name,self.job,self.grade,self.year)

      elif self.job == 'T':
            self.emp = Teamleader(self.number,self.name,self.job,self.grade,self.year)

      elif self.job == 'M':
            self.emp = Manager(self.number,self.name,self.job,self.grade,self.year)

      
      print(f'录入成功!姓名{self.name}, 工号:{self.number}, 薪资: {self.emp.salary()}')

      
            
    def find_job(self,find):
      each = 0
      allE = []
      for i in self.emp:
            if self.emp.job == find:
                each += 1
                allE.append(i)
      return each , allE
   

    def find_employee(self):
      while True:
            chose = input('1.员工查询; 2.职位查询: ')
            if chose == '1':
                find_uid = int(input('请输入工号:'))
                if find_uid in self.emp:
                  print(f'姓名:{self.emp.name}'
                        f'职位:{self.emp.job}'
                        f'级别:{self.emp.grade}'
                        f'工龄:{self.emp.year}'
                        f'薪资:{self.emp.salary()}')
                  break
                else:
                  print('该工号不存在')
            

            elif chose == '2':
               
               
                find = input('请输入职位(E.普通员工;T.组长;M.经理): ')
               
                each, allE, = self.find_job(find)
                if each == 0:
                  print(f'公司当前没有{self.all_job}')

                else:
                  print(f'当前{self.all_job}共有 {each} 人:')
                  for i in allE:
                        print(f'{i} - {self.emp.name}')
                        break
            
                  
            else:
                print('请输入正确指令')
                continue




            
    def up(self):
      while True:
            uid = int(input('请输入工号:'))
            if uid in self.emp:
                break
            else:
                print('工号不存在请重新输入')
      
      emp = self.emp
      print(f'姓名:{emp.name},工号:{emp.uid},当前职位:{emp.job}{emp.grade},当前薪资:{emp.salary()}')

   
      up_grade = int(input('请输入需要增加的级数:'))
      zhiwei = self.now_job.index(emp.job)


      while up_grade + emp.grade > self.max_grade:
            up_grade += emp.grade
            if emp.job == self.now_job[-1]:
                print('已经是最高等级')
                emp.job = self.now_job[-1]
                emp.grade = self.max_grade
                print(f'当前职位:{self.all_job} {emp.grade}级')
                break
               
               
            if len(self.now_job)-1 >= zhiwei:
                  
                up_grade -= self.max_grade]
                zhiwei += 1
                emp.job = self.now_job
                emp.grade = 0
                continue

            if up_grade == 0:
                emp.grade = 1
            print(f'升级成功,当前职位:{self.all_job} {emp.grade}级')

            break
                  
      else:
            emp.grade += up_grade
            print(f'升级成功,当前职位:{self.all_job} {emp.grade}级')




    def low(self):
      while True:
            uid = int(input('请输入工号:'))
            if uid in self.emp:
                break
            else:
                print('工号不存在请重新输入')
      
      emp = self.emp
      print(f'姓名:{emp.name},工号:{emp.uid},当前职位:{emp.job}{emp.grade},当前薪资:{emp.salary()}')



      low_grade = int(input('请输入需要降低的级数:'))
      zhiwei = self.now_job.index(emp.job)



      while emp.grade - low_grade < 1:
            if zhiwei == 0:
                print('已经是最低等级')
                emp.job = self.now_job
                emp.grade = 1
                print(f'当前职位:{self.all_job} {emp.grade}级')
                break
               
               
            if zhiwei > 0:
                low_grade -= emp.grade
                zhiwei -= 1
                emp.job = self.now_job
                emp.grade = self.max_grade
                continue
            
            elif low_grade == 0:
                emp.job = self.now_job
                emp.grade = self.max_grade
                continue
            
            elif low_grade > 0:
                emp.job = self.now_job
                emp.grade -= low_grade
                continue

                  
      else:
            emp.grade -= low_grade
            print(f'降级成功,当前职位:{self.all_job} {emp.grade}级')
               

a = Manage()
while True:
   
    chose = int(input('1.录入;2.查询;3.升级;4.降级;5.退出;'))
    if chose == 1:
      a.set_employee()
    elif chose == 2:
      a.find_employee()
    elif chose == 3:
      a.up()
    elif chose == 4:
      a.low()
    elif chose == 5:
      print('感谢使用系统~')
      break
            

Matthew82 发表于 2026-7-21 11:23:30

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:
利用子类对父类的继承和重写。
第 1 题的答案是:
可以保持父类稳定,减少重复工作
第 2 题的答案是:
可以,数据和字符窜相加,意义不同。
第 3 题的答案是:
黑猫白猫
第 4 题的答案是:
降低耦合
第 5 题的答案是:
不是,是单态。
-------- 动动手 --------

请将第 0 题的代码写在下方:

kologg 发表于 2026-7-20 13:28:27

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:鸭子类型,子类重写父类函数

第 1 题的答案是:多态的优势是扩展性好,不需要大量修改源代码

第 2 题的答案是:可以

第 3 题的答案是:

第 4 题的答案是:鸭子类型是降低耦合度

第 5 题的答案是:是的

-------- 动动手 --------

请将第 0 题的代码写在下方:

小朱很爱学 发表于 2026-7-18 16:55:10

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

可可爱爱小金鱼 发表于 2026-7-17 18:58:42

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

qingyun606 发表于 2026-7-15 21:13:26

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:
1
第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

花哗哗~ 发表于 2026-7-15 21:01:47

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

Boren2011 发表于 2026-7-13 16:28:02

璁ょ湡瀛︿範涓紝鎰熻阿灏忕敳楸艰

花哗哗~ 发表于 2026-7-9 22:46:11

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 第063讲:类和对象(VI)| 课后测试题及答案