# -*- coding: utf-8 -*-
"""
Created on Tue Mar 12 23:09:01 2019@author: fengs
""""""
测试题:
0. 什么是组合(组成)?完全忘记了-------> 就是把类的属性赋值成其他类的实例化对象1. 什么时候用组合,什么时候用继承?完全忘记了 -----> 继承,只继承一个 组合-基本都可用,反正大家都是对象2. 类对象是在什么时候产生?类的源代码加载进内存时类对象就产生了,不需要实例化对象3. 如果对象的属性跟方法名字相同,会怎样?属性会覆盖方法4. 请问以下类定义中哪些是类属性,哪些是实例属性?
class C:num = 0def __init__(self):self.x = 4self.y = 5C.count = 6num 和 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 "
TypeError: printBB() takes 0 positional arguments but 1 was given实例方法的输入参数中应该有self对象传入,没有指定方法的实例""""""
0. 思考这一讲我学习的内容,请动手在一个类中定义一个变量,用于跟踪该类有多少个实例被创建(当实例化一个对象,这个变量+1,当销毁一个对象,这个变量自动-1)。
"""
class Test():object_count = 0def __init__(self):Test.object_count += 1print('object_count = %d' % Test.object_count)def __del__(self):Test.object_count -= 1print('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) == 0def push(self,data):self.stackMemory.append(data)def pop(self):if self.isEmpty() == False:return self.stackMemory.pop()else:print('此栈已经为空,无法进行弹出操作')return Nonedef 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()