python小测试(二)

1.面向对象三大特性,各有什么用处,说说你的理解
     封装:根据职责将属性和方法封装在一个抽象类中;
     继承:实现代码重复利用
     多态:不同子类的对象调用相同的方法,产生不同的结果。增加了代码的灵活性。
2.面向过程编程与面向对象编程的区别?
      面向过程:
          1.把完成某一个需求的 所有步骤 从头到尾 逐步实现
          2.根据开发要求,将某些功能独立的代码封装成一个又一个函数
          3.最后完成的代码,就是顺序的调用不同的函数
          特点:
             1.注重步骤与过程,不注重职责分工
             2.如果需求复杂,代码会变得很复杂
             3.开发复杂项目,没有固定的套路,开发难度很大

     面向对象:
         相比较函数,面向对象是更大的封装,根据职责在一个对象中封装多个方法
             1.在完成某一个需求前,首先确定职责--要做的事(方法)
             2.根据职责确定不同的对象,在对象内部封装不同的方法(多个)
             3.最后完成代码,就是顺序的让不同的对象调用不同的方法
         特点:
             1.注重对象和职责,不同的对象承担不同的职责
             2.更加适合对复杂的需求变化,是专门应对复杂项目的开发,提供的固定套路
             3.需要在面向过程的基础上,再学习一些面向对象的语法
3.python中经典类和新式类的区别?
       经典类是不会继承类object的方法的。
          写法: class a()
       新式类会继承类object的方法。
          写法:class a(object)
4.请简单解释Python中 staticmethod(静态方法)和 classmethod(类方法)
          静态方法是指既不需要访问实例属性也不调用实例方法,并且不需要访问类属性也不调用类方法。
          写法:@staticmethod
               def A(cls)
                   pass
          类方法就是针对类对象定义的方法,在类方法内部可以直接访问类属性或者其他类方法。
          写法:@classmethod
               def A(cls)
                   pass
5.示例, 现有如下代码, 会输出什么:

  class People(object):
      __name = "luffy"
      __age = 18

  p1 = People()
  print(p1.__name, p1.__age)

            程序将会报错,因为隐藏属性不能直接被访问
6.下面这段代码的输出结果将是什么?请解释。

class Parent(object):
   x = 1

class Child1(Parent):
   pass

class Child2(Parent):
   pass

print(Parent.x, Child1.x, Child2.x)
Child1.x = 2
print(Parent.x, Child1.x, Child2.x)
Parent.x = 3
print(Parent.x, Child1.x, Child2.x)

             答案:  (1, 1, 1)
                    (1, 2, 1)
                    (3, 2, 3)
             注意:这里是对子类或者父类属性作出相应的更改,然后看相应类属性的值变化。
7.“Joker在BMW 4S店买了一俩BMW X7”,根据业务描述,声明相关类
              class Car():
                  def __init__(self,name):
                  self.name = name
              class Store():
                  pass
              class Personal():
                  def __init__(self,name):
                  self.name = name
                  pass
              tom = Personal('tom')
              bmw x7 = Car('BMW x7')
8.编写程序, A 继承了 B, 俩个类都实现了 handle 方法, 在 A 中的 handle 方法中调用 B 的 handle 方法
             class B():
                 def handle(self):
                 pass
             class A(B):
                 def handle(self):
                 B.handle(self)
                     pass
             xx = A()
             xx.handle()
9.编写一个学生类,产生一堆学生对象
要求:有一个计数器(属性),统计总共实例了多少个对象
class Student():
    count = 0
    def __init__(self, name):
        self.name = name
        Student.count += 1
a = Student('A')
b = Student('B')
c = Student('C')
print Student.count
10.面向对象编程:图书管理系统
        

你可能感兴趣的:(python,运维)