20-作业-面向对象

  1. 简述面向对象三大特性并用代码表示。

  2. 什么是鸭子模型?

  3. 列举面向对象中的类成员和对象成员。

  4. @methodclass和@staticmethod的区别?

  5. Python中双下滑 __ 有什么作用?

  6. 看代码写结果

    class Base:
    x = 1
    obj = Base()
    print(obj.x)
    obj.y = 123
    print(obj.y)
    obj.x = 123
    print(obj.x)
    print(Base.x)
  7. 看代码写结果

    class Parent:
    x = 1
    class Child1(Parent):
    pass
    class Child2(Parent):
    pass
    print(Parent.x,Child1.x,Child2.x)
    Child2.x = 2
    print(Parent.x,Child1.x,Child2.x)
    Child1.x = 3
    print(Parent.x,Child1.x,Child2.x)
  8. 看代码写结果

    class Foo(object):
    n1 = '武沛齐'
    n2 = '金老板'
    def __init__(self):
    self.n1 = '女神'
    obj = Foo()
    print(obj.n1)
    print(obj.n2)
  9. 看代码写结果【如果有错误,则标注错误即可,并且假设程序报错可以继续执行】

    class Foo(object):
    n1 = '武沛齐'
    def __init__(self,name):
    self.n2 = name
    obj = Foo('太白')
    print(obj.n1)
    print(obj.n2)
    print(Foo.n1)
    print(Foo.n2)
  10. 看代码写结果【如果有错误,则标注错误即可,并且假设程序报错可以继续执行】

class Foo(object):
a1 = 1
__a2 = 2
def __init__(self,num):
self.num = num
self.__salary = 1000
def show_data(self):
print(self.num+self.a1)
obj = Foo(666)
print(obj.num)
print(obj.a1)
print(obj.__salary)
print(obj.__a2)
print(Foo.a1)
print(Foo.__a2)
  1. 看代码写结果【如果有错误,则标注错误即可,并且假设程序报错可以继续执行】

    class Foo(object):
    a1 = 1
    def __init__(self,num):
    self.num = num
    def show_data(self):
    print(self.num+self.a1)
    obj1 = Foo(666)
    obj1 = Foo(999)
    print(obj1.num)
    print(obj1.a1)
    obj1.num = 18
    obj1.a1 = 99
    print(obj1.num)
    print(obj1.a1)
    print(obj2.a1)
    print(obj2.num)
    print(obj2.num)
    print(Foo.a1)
    print(obj1.a1)
  2. 看代码写结果,注意返回值。

    class Foo(object):
    def f1(self):
    return 999
    def f2(self):
    v = self.f1()
    print('f2')
    return v
    def f3(self):
    print('f3')
    return self.f2()
    def run(self):
    result = self.f3()
    print(result)
    obj = Foo()
    v1 = obj.run()
    print(v1)
  3. 看代码写结果【如果有错误,则标注错误即可,并且假设程序报错可以继续执行】

    class Foo(object):
    def f1(self):
    print('f1')
    @staticmethod
    def f2():
    print('f2')
    obj = Foo()
    obj.f1()
    obj.f2()
    Foo.f1()
    Foo.f2()
  4. 看代码写结果【如果有错误,则标注错误即可,并且假设程序报错可以继续执行】

    class Foo(object):
    def f1(self):
    print('f1')
    @classmethod
    def f2(cls):
    print('f2')
    obj = Foo()
    obj.f1()
    obj.f2()
    Foo.f1()
    Foo.f2()
  5. 看代码写结果【如果有错误,则标注错误即可,并且假设程序报错可以继续执行】

    class Foo(object):
    def f1(self):
    print('f1')
    self.f2()
    self.f3()
    @classmethod
    def f2(cls):
    print('f2')
    @staticmethod
    def f3():
    print('f3')
    obj = Foo()
    obj.f1()
  6. 看代码写结果【如果有错误,则标注错误即可,并且假设程序报错可以继续执行】

    class Base(object):
    @classmethod
    def f2(cls):
    print('f2')
    @staticmethod
    def f3():
    print('f3')
    class Foo(object):
    def f1(self):
    print('f1')
    self.f2()
    self.f3()
    obj = Foo()
    obj.f1()
  7. 看代码写结果

    class Foo(object):
    def __init__(self, num):
    self.num = num
    v1 = [Foo for i in range(10)]
    v2 = [Foo(5) for i in range(10)]
    v3 = [Foo(i) for i in range(10)]
    print(v1)
    print(v2)
    print(v3)
  8. 看代码写结果

    class StarkConfig(object):
    def __init__(self, num):
    self.num = num
    def changelist(self, request):
    print(self.num, request)
    config_obj_list = [StarkConfig(1), StarkConfig(2), StarkConfig(3)]
    for item in config_obj_list:
    print(item.num)
  9. 看代码写结果

    class StarkConfig(object):
    def __init__(self, num):
    self.num = num
    def changelist(self, request):
    print(self.num, request)
    config_obj_list = [StarkConfig(1), StarkConfig(2), StarkConfig(3)]
    for item in config_obj_list:
    item.changelist(666)
  10. 看代码写结果

    class Department(object):
    def __init__(self,title):
    self.title = title
    class Person(object):
    def __init__(self,name,age,depart):
    self.name = name
    self.age = age
    self.depart = depart
    d1 = Department('人事部')
    d2 = Department('销售部')
    p1 = Person('武沛齐',18,d1)
    p2 = Person('alex',18,d1)
    p3 = Person('安安',19,d2)
    print(p1.name)
    print(p2.age)
    print(p3.depart)
    print(p3.depart.title)
  11. 看代码写结果

    class Department(object):
    def __init__(self,title):
    self.title = title
    class Person(object):
    def __init__(self,name,age,depart):
    self.name = name
    self.age = age
    self.depart = depart
    def message(self):
    msg = "我是%s,年龄%s,属于%s" %(self.name,self.age,self.depart.title)
    print(msg)
    d1 = Department('人事部')
    d2 = Department('销售部')
    p1 = Person('武沛齐',18,d1)
    p2 = Person('alex',18,d1)
    p1.message()
    p2.message()
  12. 编写类完成以下的嵌套关系

    """
    角色:学校、课程、班级
    要求:
    1. 创建北京、上海、深圳三所学校。
    2. 创建课程
    北京有三种课程:Linux、Python、Go
    上海有两种课程:Linux、Python
    深圳有一种课程:Python
    3. 创建班级(班级包含:班级名称、开班时间、结课时间、班级人数)
    北京Python开设:21期、22期
    北京Linux开设:2期、3期
    北京Go开设:1期、2期
    上海Python开设:1期、2期
    上海Linux开设:2期
    深圳Python开设:1期、2期
    """

预习

  1. 对象之间的嵌套关系
  2. 异常处理
  3. 类中的特殊成员:call
posted @   指弹小能手  阅读(74)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
历史上的今天:
2017-06-15 OCP 11G 实验环境安装文档 ( RedHat5.5 + Oracle11g )

关于作者:专注数据库、Python 开发、ROS、深度学习,请多多赐教!

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(iamkuboy@163.com)咨询.

点击右上角即可分享
微信分享提示