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

class point:
    x=10
    y=10
    def __init__(self,x,y):
        self.x=x
        self.y=y
pt=point(20,20)
print(pt.x,pt.y)

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

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

class C():
    f=10
class C1(C):
    pass

print(C.f,C1.f)

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

二、填空题

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

2.类的定义如下:

class person:
    name='Liming'
    score=90

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

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

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

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

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

class Account:
    def __init__(self,id):
        self.id=id
        id=888
acc=Account(100)
print(acc.id)

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

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

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

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

class parent:
   def __init__(self,param):
       self.v1=param
class child(parent):
   def __init__(self,param):
       parent.__init__(self,param)
       self.v2=param
obj=child(100)
print(obj.v1,obj.v2)

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

class account:
    def __init__(self,id,balance):
        self.id=id
        self.balance=balance
    def deposit(self,amount):
        self.balance+=amount
    def withdraw(self,amount):
        self.balance-=amount
acc1=account('1234',100)
acc1.deposit(500)
acc1.withdraw(200)
print(acc1.balance)

三、问答题

可以看一下这个博客:

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

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

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

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

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

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

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

class 类名:
    类体

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

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

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

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

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

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

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

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

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

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

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

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


 

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值