关于继承的一些问题
import mathimport random
a=(int(input('坐标范围:')))
class Point():
def __init__(self):
self.x=random.randint(0,a)
self.y=random.randint(0,a)
print(self.x,self.y)
class line(Point):
def __init__(self,b):
super().__init__()
print('需要输入两个点进行计算 例 a=line(b)')
def lenth(self):
lines=math.sqrt((abs(self.x-b.x))**2+(abs(self.y+b.y)**2))
print(lines)
b=Point()
c=line.lenth(b)
这段代码的结果是b 输出了xy坐标但是c没有输出,原因是什么
题目是 视频 继承 那一期的动动手 如果按值来看,输出了,print(lines)
按变量来看,没有输出,因为你没有print(c) qiuyouzhi 发表于 2021-2-1 19:51
如果按值来看,输出了,print(lines)
按变量来看,没有输出,因为你没有print(c)
但是c=line(Point)不是继承了Point 的方法吗? 没有实例化line对象(仅仅是调用了方法),因此不会触发__init__()函数 YIRANNA 发表于 2021-2-1 20:11
但是c=line(Point)不是继承了Point 的方法吗?
只有定义的时候才能用继承
class line(Point):
...
在实例化对象的时候,括号里面的参数就都是传给类里的 __init__() 方法(如果有) YIRANNA 发表于 2021-2-1 20:11
但是c=line(Point)不是继承了Point 的方法吗?
??哪里有这行代码
定义类的时候是不会运行的,只是定义而已 本帖最后由 °蓝鲤歌蓝 于 2021-2-1 21:54 编辑
1. 你都没有 print(c) ,怎么会打印 c 呢?
2.c=line.lenth(b) 根本就没有调用 __init__方法
页:
[1]