下列程序的执行结果是() class C(): f=10 class C1(): pass print(C.f,C1.f) A 10 10 B 10 pass C pass 10 D 运行出错
时间: 2024-02-26 16:53:26 浏览: 57
答案是 B 10 pass。
程序中定义了两个类 `C` 和 `C1`,其中 `C` 中定义了一个类属性 `f` 并赋值为 10。在主程序中,首先输出了 `C.f`,即类 `C` 的类属性 `f`,其值为 10;其次输出了 `C1.f`,即类 `C1` 的类属性 `f`,由于类 `C1` 中没有定义类属性 `f`,因此输出 `pass`。
相关问题
class C(): f=10 class C1(): pass print(C.f,C1.f) A 10 10 B 10 pass C pass 10 D 运行出错
在代码中,类`C`和类`C1`都没有实例化,因此可以直接访问它们的属性。类`C`有一个名为`f`的属性,它的值为`10`,因此`print(C.f)`会输出`10`。类`C1`没有定义任何属性或方法,因此`print(C1.f)`会引起`AttributeError`,因为类`C1`根本没有名为`f`的属性。
当你尝试访问一个类中未定义的属性时,Python会引发`AttributeError`。在`B`中,你尝试访问一个未定义的属性,因此输出是`AttributeError`。
在`C`中,你使用了`pass`语句,它不会执行任何操作,因此`C`类不会做任何事情。
在`D`中,你没有给它指定任何操作,因此也不会做任何事情。
import math class Graphic: def __init__(self,name): self.name = name def cal_square(self): pass class Triangle(Graphic): def __init__(self,name,height,border): super().__init__(name) self.height = height self.border = border def cal_square(self): square = 1/2 * self.height * self.border print(f"{self.name}的面积是{square:.2f}") class Circle(Graphic): def __init__(self,name,radius): super().__init__(name) self.radius = radius def cal_square(self): square = math.pi * pow(self.radius,2) print(f"{self.name}的面积是{square:.3f}") t1 = Triangle("三角形",6,8) t1.cal_square() c1 = Circle("圆",3) c1.cal_square()给每段代码加上注释
# 导入 math 模块
import math
# 定义图形类
class Graphic:
def __init__(self, name):
self.name = name
# 定义计算面积的方法,需要在子类中重写
def cal_square(self):
pass
# 定义三角形类,继承自图形类
class Triangle(Graphic):
def __init__(self, name, height, border):
super().__init__(name)
self.height = height
self.border = border
# 重写父类的计算面积方法
def cal_square(self):
square = 1/2 * self.height * self.border
print(f"{self.name}的面积是{square:.2f}")
# 定义圆形类,继承自图形类
class Circle(Graphic):
def __init__(self, name, radius):
super().__init__(name)
self.radius = radius
# 重写父类的计算面积方法
def cal_square(self):
square = math.pi * pow(self.radius, 2)
print(f"{self.name}的面积是{square:.3f}")
# 创建三角形对象并调用计算面积方法
t1 = Triangle("三角形", 6, 8)
t1.cal_square()
# 创建圆形对象并调用计算面积方法
c1 = Circle("圆", 3)
c1.cal_square()