• Pyhton语言程序设计 习题9


    一、选择题

    1.下列说法中不正确的是(      )。D

    A.类是对象的模板,而对象是类的实例  p175

    B.实例属性名如果以__开头,就变成了一个私有变量  p177

    C.只有在类的内部才可以访问类的私有变量,外部不能访问  p177

    D.在Python中,一个子类只能有一个父类  p181 可以多继承

    2.下列选项中不是面向对象程序设计基本特征的是(      )。C

    A.继承          B.多态           C.可维护性         D.封装

    3.在方法定义中,访问实例属性x的格式是(      )。B

    A.x         B.self.x      C.self[x]       D.self.getx()

    实例属性属于对象,只能通过对象名访问  p178

    4.下列程序的执行结果是(      )。D  p179

    1. class point:
    2. x=10
    3. y=10
    4. def __init__(self,x,y):
    5. self.x=x
    6. self.y=y
    7. pt=point(20,20)
    8. print(pt.x,pt.y)

    A.10 20         B.20 10      C.10 10       D.20 20

    5.下列程序的执行结果是(      )。A

    1. class C():
    2. f=10
    3. class C1(C):
    4. pass
    5. print(C.f,C1.f)

    A.10 10         B.10 pass      C.pass 10       D.运行出错 

    二、填空题

    1.在Python中,定义类的关键字是        class

    2.类的定义如下:

    1. class person:
    2. name='Liming'
    3. score=90

    该类的类名是 person ,其中定义了  name 属性和  score 属性,它们都是   公有属性。如果在属性名前加两个下划线(__),则属性是  私有属性。将该类实例化创建对象p,使用的语句为  p=person()  ,通过p来访问属性,格式为 p.name,p.score 。

    3.Python类的构造方法是  __init__,它在  生成 对象时被调用,可以用来进行一些属性  初始化 操作;类的析构方法是   __del__, 它在  释放对象时调用,可以进行一些释放资源的操作。

    4.可以从现有的类来定义新的类,这称为类的 继承,新的类称为子类  ,而原来的类称为 基类  、父类或超类。

    5.创建对象后,可以使用 self 运算符来调用其成员。.

    6.下列程序的运行结果为       。100

    1. class Account:
    2. def __init__(self,id):
    3. self.id=id
    4. id=888
    5. acc=Account(100)
    6. print(acc.id)

    语句 self.id=id  是给这个类的实例的id赋值,

    而 id=888 是这个init函数的临时变量,这个函数结束后就没了。

    最后 print(acc.id) 访问的是类的实例的id的值

     7.下列程序的运行结果为       100 100

    1. class parent:
    2. def __init__(self,param):
    3. self.v1=param
    4. class child(parent):
    5. def __init__(self,param):
    6. parent.__init__(self,param)
    7. self.v2=param
    8. obj=child(100)
    9. print(obj.v1,obj.v2)

    8.下列程序的运行结果为      400 

    1. class account:
    2. def __init__(self,id,balance):
    3. self.id=id
    4. self.balance=balance
    5. def deposit(self,amount):
    6. self.balance+=amount
    7. def withdraw(self,amount):
    8. self.balance-=amount
    9. acc1=account('1234',100)
    10. acc1.deposit(500)
    11. acc1.withdraw(200)
    12. print(acc1.balance)

    三、问答题

    可以看一下这个博客:

    python中的类和对象,属性和方法

    1.什么叫类?什么叫对象?它们有何关系?

    ( 1)对象是一个实体,这个实体具有明确定义的边界和标识,并且封装了状态和行为;

    ( 2)类就是对象的抽象描述,这些对象共享相同的属性、操作、关系和语义。

    ( 3) 类是对象的抽象,而对象是类的实例,是具体的;通过类可以构造具体的对象。

    2.在Python中如何定义类与对象?

    类是一种广义的数据类型,这种数据类型中的元素(或成员)既包含数据,也包含操作数据的函数。在Python 中,通过class 关键字来定义类。定义类的一般格式如下:

    1. class 类名:
    2. 类体

     类是抽象的,要使用类定义的功能,就必须将类实例化,即创建类的对象。在Python 中,用赋值的方式创建类的实例,一般格式为:

    对象名=类名(参数列表)

    创建对象后,可以使用“.”运算符,通过实例对象来访问这个类的属性和方法(函数),一般格式为: 

    1. 对象名.属性名
    2. 对象名.函数名()

    3.类的属性有哪几种?如何访问它们?

    类的属性:一般分为公有属性和私有属性,默认情况下所有得属性都是公有的,如果属性的名字以两个下划线开始,就表示为私有属性,没有下划线开始的表示公有属性。 python的属性分为实例属性和静态属性,实例属性是以self为前缀的属性,如果构造函数中定义的属性没有使用self作为前缀声明,则该变量只是普通的局部变量,类中其它方法定义的变量也只是局部变量,而非类的实例属性。
     

    1. class Fruit:
    2. price=0 #定义一个类属性
    3. def __init__(self): #构造函数
    4. self.color="red" #实例属性,以self为前缀
    5. zone="China" #局部变量,不以self为前缀
    6. if __name__=="__main__":
    7. print(Fruit.price) #使用类名调用类变量 0
    8. apple=Fruit() #实例化apple
    9. print(apple.color) #打印apple实例的颜色 red
    10. Fruit.price=Fruit.price+10 #将类变量+10
    11. print("apple's price:",+str(apple.price)) #打印apple实例的price 10
    12. banana=Fruit() #实例化banana
    13. print("banana's price:"+str(banana.price)) #打印banana实例的price 10

     注意:python的类和对象都可以访问类属性;类的外部不能直接访问私有属性(属性名以两个下划线开始),当把上面的self.color=color改为self.__color="red",再次执行print(Fruit.__color)的时候就会报错

    4.继承与派生有何关系?如何实现类的继承?

    继承与派生其实是同一过程从不同的角度看,我们将保持已有类的特性而构造新类的过程称为继承,说白了继承的目的就是实现原来设计与代码的重用,希望尽量利用原有的类。然而当新的问题出现,原有程序无法解决或不能完全解决时,需要对原有程序进行改造,在已有类的基础上新增自己的特性而产生新类的过程称为派生。

    5.什么是多态?在Python中如何体现?

    多态,指抽象类中定义的一个方法,可以在其子类中重新实现,不同子类中的实现方法也不相同。
     


     

  • 相关阅读:
    保存GraphPad Prism文件时,可以选择【PZF】与【PZFX】两种文件格式。
    企业级存储详解与存储资源盘活
    【STL容器】vector
    java计算机毕业设计ssm美食视频教学网站element 前后端分离
    技术分享 | app自动化测试(Android)–触屏操作自动化
    【计算机网络】详解TCP协议(下) 滑动窗口 | 流量控制 | 拥塞控制
    第二次作业
    2008-2020年数据上市公司高管团队异质性数据包含Stata代码
    阿里云全球实时传输网络GRTN—QOE优化实践
    【软件推荐】我的常用Windows软件
  • 原文地址:https://blog.csdn.net/JYHZZ/article/details/127815975