• [Python]小甲鱼Python视频第039课(类和对象:拾遗 )课后题及参考解答


    # -*- coding: utf-8 -*-
    """
    Created on Tue Mar 12 23:09:01 2019
    
    @author: fengs
    """
    
    """
    测试题:
    0. 什么是组合(组成)?
        完全忘记了-------> 就是把类的属性赋值成其他类的实例化对象
    
    1. 什么时候用组合,什么时候用继承?
        完全忘记了  -----> 继承,只继承一个 组合-基本都可用,反正大家都是对象
        
    2. 类对象是在什么时候产生?
        类的源代码加载进内存时类对象就产生了,不需要实例化对象
        
    3. 如果对象的属性跟方法名字相同,会怎样?
        属性会覆盖方法
        
    4. 请问以下类定义中哪些是类属性,哪些是实例属性?
    class C:
            num = 0
            def __init__(self):
                    self.x = 4
                    self.y = 5
                    C.count = 6
    
    
    num 和 count 是类属性
    x 和 y  是实例属性
    
    
    5. 请问以下代码中,bb 对象为什么调用 printBB() 方法失败?
    class BB:
            def printBB():
                    print("no zuo no die")
    
    >>> bb = BB()
    >>> bb.printBB()
    Traceback (most recent call last):
      File "<pyshell#8>", line 1, in <module>
        bb.printBB()
    TypeError: printBB() takes 0 positional arguments but 1 was given
    
    
    实例方法的输入参数中应该有self对象传入,没有指定方法的实例
    
    
    """
    
    
    """
    0. 思考这一讲我学习的内容,请动手在一个类中定义一个变量,用于跟踪该类有多少个实例被创建(当实例化一个对象,这个变量+1,当销毁一个对象,这个变量自动-1)。
    """
    class Test():
        object_count = 0
        
        def __init__(self):
            Test.object_count += 1
            print('object_count = %d' % Test.object_count)
        def __del__(self):
            Test.object_count -= 1
            print('object_count = %d' % Test.object_count)
            
            
    test1 = Test()
    test2 = Test()
    del(test1)
    del(test2)
    
    
    """
    1. 定义一个栈(Stack)类,用于模拟一种具有后进先出(LIFO)特性的数据结构。至少需要有以下方法:
    isEmpty()	判断当前栈是否为空(返回 True 或 False)
    push()	往栈的顶部压入一个数据项
    pop()	从栈顶弹出一个数据项(并在栈中删除)
    top()	显示当前栈顶的一个数据项
    bottom()	显示当前栈底的一个数据项
    """
    
    class Stack():
        def __init__(self):
            self.stackMemory = list()
        def isEmpty(self):
            return len(self.stackMemory) == 0
        def push(self,data):
            self.stackMemory.append(data)
        def pop(self):
            if self.isEmpty() == False:
                return self.stackMemory.pop()
            else:
                print('此栈已经为空,无法进行弹出操作')
                return None
        def top(self):
            if self.isEmpty() == False:
                print('当前栈顶元素为 ',end = ' ')
                print(self.stackMemory[-1])
            else:
                print('此栈已经为空,无法进行栈顶查询操作')
        def buttom(self):
            if self.isEmpty() == False:
                print('当前栈底元素为 ',end = ' ')
                print(self.stackMemory[0])
            else:
                print('此栈已经为空,无法进行栈底查询操作')
      
    stack = Stack()
    stack.push(1)
    stack.push([1,])
    stack.push((1,2))
    stack.top()
    stack.buttom()
    
        
    

      

    ~不再更新,都不让我写公式,博客园太拉胯了
  • 相关阅读:
    JSP总结1
    EL总结2-域
    EL总结1
    getRealPath和getContextPath
    mybatis获取参数数值的两个方式
    进程与线程区别与联系
    进程间通信和线程间通信的区别
    STRLEN
    二叉树数据结构和算法
    TYPDEF使用注意部分
  • 原文地址:https://www.cnblogs.com/alimy/p/10520499.html
Copyright © 2020-2023  润新知