zoukankan      html  css  js  c++  java
  • 【面向对象】-类和对象作业

    1.类或对象是否可以做字典得key,可以但是不推荐

    class Person():
    pass

    dic={Person():123}

    print(dic)
    私有成员是如何实现的:改名策略

    # 作业

    # 1.类或对象是否能做字典的key 可以,不推荐
    """
    class Person():
    pass
    dic = {Person():123}
    print(dic)
    """
    # 2.简述python的私有成员是如何实现的 _改名策略
    # 3.私有成员能在类的外部使用么?能在子类中使用么? 都不行
    # 4.读程序写结果.(不执行)
    class StarkConfig(object):
    def __init__(self,num):
    self.num = num
    def changelist(self,request):
    print(self.num,request)

    class RoleConfig(StarkConfig):
    def changelist(self,request):
    print('666')

    # 创建了一个列表,列表中有三个对象(实例)
    config_obj_list = [StarkConfig(1),StarkConfig(2),RoleConfig(3)]
    for item in config_obj_list:
    print(item.num) # 1 2 3


    # 5.读程序写结果.(不执行)
    class StarkConfig(object):
    def __init__(self,num):
    self.num = num
    def changelist(self,request):
    print(self.num,request)

    class RoleConfig(StarkConfig):
    pass

    # 创建了一个列表,列表中有三个对象(实例)
    config_obj_list = [StarkConfig(1),StarkConfig(2),RoleConfig(3)]
    for item in config_obj_list:
    item.changelist(168)
    """
    1 168
    2 168
    3 168
    """
    # print(config_obj_list[0].num)


    # 6.读程序写结果.(不执行)
    class StarkConfig(object):
    def __init__(self,num):
    self.num = num
    def changelist(self,request):
    print(self.num,request)

    class RoleConfig(StarkConfig):
    def changelist(self,request):
    print(666,self.num)

    config_obj_list = [StarkConfig(1),StarkConfig(2),RoleConfig(3)]
    for item in config_obj_list:
    item.changelist(168)
    """
    1 168
    2 168
    666 3
    """


    # 7.读程序写结果.(不执行)
    class StarkConfig(object):
    def __init__(self,num):
    self.num = num
    def changelist(self,request):
    print(self.num,request)
    def run(self):
    self.changelist(999)

    class RoleConfig(StarkConfig):
    def changelist(self,request):
    print(666,self.num)

    config_obj_list = [StarkConfig(1),StarkConfig(2),RoleConfig(3)]
    config_obj_list[1].run() # 2 999
    config_obj_list[2].run() # 666 , 3


    # 8.读程序写结果.(不执行)
    class StarkConfig(object):
    def __init__(self,num):
    self.num = num
    def changelist(self,request):
    print(self.num,request)
    def run(self):
    self.changelist(999)

    class RoleConfig(StarkConfig):
    def changelist(self,request):
    print(666,self.num)

    class AdminSite(object):
    def __init__(self):
    self._registry = {}
    def register(self,k,v):
    self._registry[k] = v

    site = AdminSite()
    print(len(site._registry)) # 0
    site.register('range',666) # {range:666}
    site.register('shilei',438)# {range:666 , shilei:438}
    print(len(site._registry)) # 2

    site.register('lyd',StarkConfig(19))# {lyd:obj}
    site.register('yjl',StarkConfig(20))# {yjl:obj}
    site.register('fgz',RoleConfig(33)) # {fgz:obj}
    print(len(site._registry)) # 5
    print(site._registry)


    # 9.读程序写结果.(不执行)
    class StarkConfig():
    def __init__(self,num):
    self.num = num
    def changelist(self,request):
    print(self.num,request)
    def run(self):
    self.changelist(999)

    class RoleConfig(StarkConfig):
    def changelist(self,request):
    print(666,self.num)

    class AdminSite():
    def __init__(self):
    self._registry = {}
    def register(self,k,v):
    self._registry[k] = v

    site = AdminSite()
    site.register('lyd',StarkConfig(19))
    site.register('yjl',StarkConfig(20))
    site.register('fgz',RoleConfig(33))
    """
    'lyd': <__main__.StarkConfig object at 0x0000029289477F28>,
    'yjl': <__main__.StarkConfig object at 0x0000029289477F60>,
    """
    for k,row in site._registry.items():
    row.changelist(5) # 19 5 / 20 5 / 666 33
    for k,row in site._registry.items():
    row.run() # 19 999 / 20 999 / 666 33
    """"""

    # 10.读程序写结果.(不执行)
    class JustCounter:
    __secretCount = 0
    def count(self):
    print(self.__secretCount) # 获取
    self.__secretCount += 1
    """
    self.__secretCount = self.__secretCount + 1
    self.__secretCount = 0 + 1 = 1
    self.__secretCount = 1 为当前对象添加私有成员__secretCount 值为1
    """

    def count3():
    print(JustCounter.__secretCount)
    JustCounter.__secretCount += 1
    print(JustCounter.__secretCount)

    class Bars(JustCounter):
    def count2(self):
    print(self.__secretCount)

    # 情况一
    """"""
    # counter1 = JustCounter()
    # counter1.count() # 0
    # counter1.count() # 1
    # JustCounter.count3() # 1

    """
    0
    1
    """
    # 情况二
    # counter2 = Bars()
    # counter2.count() # 1
    # counter2.count() # 2
    # 情况三
    # JustCounter.count3() # 0 1

  • 相关阅读:
    【Java】-NO.16.EBook.4.Java.1.012-【疯狂Java讲义第3版 李刚】- Swing
    【MySQL】-NO.21.MySQL.1.MySQL.1.001-【Install MySQL5.7 On Windows】
    【Java】-NO.17.EBook.4.Java.1.014-【疯狂Java讲义第3版 李刚】- Annotation
    【Java】-NO.20.Exam.1.Java.1.001- 【1z0-807】- OCEA
    【Java】-NO.16.EBook.4.Java.1.005-【疯狂Java讲义第3版 李刚】- 枚举
    【Java】-NO.16.EBook.4.Java.1.006-【疯狂Java讲义第3版 李刚】- 垃圾回收
    【Java】-NO.16.EBook.4.Java.1.008-【疯狂Java讲义第3版 李刚】- 集合/容器
    【Java】-NO.16.EBook.4.Java.1.009-【疯狂Java讲义第3版 李刚】- 泛型
    【Java】-NO.16.EBook.4.Java.1.010-【疯狂Java讲义第3版 李刚】- 异常
    【Java】-NO.16.EBook.4.Java.1.001-【疯狂Java讲义第3版 李刚】- UML
  • 原文地址:https://www.cnblogs.com/bonnyxinxin/p/13026340.html
Copyright © 2011-2022 走看看