zoukankan      html  css  js  c++  java
  • 月考二——试题

    6.判断一个对象是否属于str类型,判断一个类是否是另外一个类的子类?
        答案: - isintance, issubclass
    
    7.定义一个老师类,定制打印对象的格式为‘<name:C_DSB age:18 sex:male>’
        答案: -
    .定义一个自己的open类,控制文件的读或写,在对象被删除时自动回收系统资源
        答案: - class Open:
                   def __init__(self):
                       self.f = open(file_name, mode, encoding)
                   def __del__(self):
                       self.f.close()
    
    11.__str__的作用是什么?
        答案: - 在打印对象时触发,必须要return一个字符串,用于作为打印对象的结果
    
    14.类中的 __getattr__ 方法什么时候被执行?
        答案: - 在对象.属性的时候,对象没有的时候触发。
        __getattr__(self,name) 定义当用户获取一个不存在的属性时的行为。
        当实例对象调用不存在的属性时,就会执行__getattr__(self,name)下面的代码,如果在类中没重载__getattr__(self,name)方法,则会抛出AttributeError异常
    
    15.什么是抽象类?
        答案: - 抽象就是将三个类的属性提取出来写在一个类中,并且所有子类继承抽象类强制遵循抽象类中的属性与方法。
    
    21.什么是面向对象三大特性?分别的作用是什么?
        答案:
            继承:
                子类继承父类的属性或方法,并且可以派生出自己的新的属性与方法,减少代码冗余
            封装:
                将数据属性与方法封装到对象中,通过对象.的方式就能获取
            多态:
                让子类遵循父类的规范
    
    23.__getattrubite__在什么时候触发?
        答案: -在对象.属性时,无论属性是否存在都会触发
    
    get 仅在作为类属性的值且被访问时,经过此函数
    getattribute
    已存在的属性
    若不存在属性getattr
    有关博客:https://www.jianshu.com/p/4e34c9b2fdc3
    
    24.__call__在什么时候触发?
        答案: -在调用对象,对象()时触发。
    
    26.如何用元类控制类的创建,请写代码?
        class Mymetaclass(type):
            def __new__(cls, name, bases, attrs):
                update_attrs = {}
                for k, v in attrs.items():
                    # callable(方法) 判断是否是可调用的函数或方法
                    # 不是 方法 与 私有属性, 都将属性名改为大写
                    if not callable(v) and not k.startswith('__'):
                        update_attrs[k.upper()] = v
                    else:
                        update_attrs[k] = v
                return type.__new__(cls, name, bases, update_attrs)
    
        class Chinese(metaclass=Mymetaclass):  # Mymetaclass()
            country = 'China'
            tag = 'Legend of the Dragon'  # 龙的传人
    
            def walk(self):
                print('%s is walking' % self.name)
    
  • 相关阅读:
    TC Asia Competition
    Codeforces 258 Div2
    斯坦纳树
    <算法竞赛入门经典> 第8章 贪心+递归+分治总结
    UVALive 6602 Counting Lattice Squares
    UVALive 6609 Minimal Subarray Length (查找+构建排序数组)
    vue中路由以及动态路由跳转
    sublime安装
    js数组转对象
    如何将变量做为一个对象的key,push进一个数组?
  • 原文地址:https://www.cnblogs.com/pythonwl/p/12761834.html
Copyright © 2011-2022 走看看