首页 > 试题广场 >

运行下列四个选项的程序,不会抛出异常的是()

[单选题]

运行下列四个选项的程序,不会抛出异常的是()

  • class Rect:

    def __init__(self,width,height):

    self.width = width

    self.height = height

    @property

    def area(self):

    return self.height* self.width

    rect = Rect(10,20)

    rect.area()

  • a = 0

    def fun():

    a += 1

    print(a)

    fun()

  • class Animal:

    def __init__(self,color="白色"):

    Animal.color = color

    def get_color(self):

    print("Animal的颜色为",Animal.color)
    class Cat(Animal):

    def __init__(self):

    pass

    cat = Cat()

    cat.get_color()

  • class Cat:

    def __init__(self,color="白色"):

    self.__color = color

    cat = Cat("绿色")

    print(cat._Cat__color)

A @property将方法变成属性调用,最后一行使用area属性时去掉括号
B 函数中'a += 1'直接修改局部变量不对,可以在使用前用global关键字将其修改成全局变量
C 继承父类的未绑定方法时,要对父类初始化,即在pass前加 'Animal.__init__(self)'
D 也有问题,最后两行代码不需要缩进
发表于 2021-12-12 20:38:29 回复(3)
c选项应当是self.color=color
发表于 2021-12-10 09:18:58 回复(4)
D 的缩进有问题吧,看到直接排除了🙃
发表于 2021-12-25 11:34:49 回复(3)
D没明白,求讲解,私有方法为啥能被调用,并且_Cat__color这格式也没搞懂
发表于 2022-03-26 17:01:53 回复(4)
B之所以会错,是因为a=0,属于全局变量,但是接下来的def fun()相当于转变成了局部变量,如果想要其成立就需要说明局部变量,用return来转声明,外部fun中声明 fun()代表的值即可。
a=0 def fun(b):
    a=b+1  print(a) return a
fun(0)

发表于 2022-04-17 11:01:09 回复(1)
记录
发表于 2023-10-08 14:07:11 回复(0)
D项是强制访问私有属性是吗?
发表于 2023-07-26 22:50:51 回复(0)
b是我忘了怎么做了,唉
发表于 2022-12-11 21:23:50 回复(0)
记录
发表于 2022-11-22 21:08:54 回复(0)
子类中有初始化方法后不能自行调用父类中的方法
发表于 2022-11-16 00:17:49 回复(0)
Python的私有属性是假私有,通过更改属性名方式实现的。‘_ _属性名’对应在类属性中真实名字为‘_类名_ _私有属性名’
发表于 2022-08-01 00:51:24 回复(0)