# -*- 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()