鱼C论坛

 找回密码
 立即注册
查看: 1447|回复: 4

[已解决]python小问题,求助!

[复制链接]
发表于 2020-7-15 21:59:47 | 显示全部楼层 |阅读模式
2鱼币
求助!!!

import math as mt

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

class Line():
    def __init__(self, a, b):
        self.a1.x = a.x
        self.a1.y = a.y
        self.a2.x = b.x
        self.a2.y = b.y

    def getLen(self):
        length = mt.sqrt((self.a1.x - sel.a2.x)**2 + (self.a1.y - self.a2.y)**2)

为什么这样写代码后会报错啊,报的是没有a1这个属性,魔法方法里应该可以直接写新属性赋值的阿?
最佳答案
2020-7-15 21:59:48


你变量不能 a1.y ,这里 self 可以是因为 self 代表的是实例对象,self.代表的是这个实例对象里面的属性或者方法
import math as mt

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

class Line():
    def __init__(self, a, b):
        self.a1x = a.x
        self.a1y = a.y
        self.a2x = b.x
        self.a2y = b.y

    def getLen(self):
        length = mt.sqrt((self.a1x - self.a2x)**2 + (self.a1y - self.a2y)**2)

最佳答案

查看完整内容

你变量不能 a1.y ,这里 self 可以是因为 self 代表的是实例对象,self.代表的是这个实例对象里面的属性或者方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-15 21:59:48 | 显示全部楼层    本楼为最佳答案   


你变量不能 a1.y ,这里 self 可以是因为 self 代表的是实例对象,self.代表的是这个实例对象里面的属性或者方法
import math as mt

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

class Line():
    def __init__(self, a, b):
        self.a1x = a.x
        self.a1y = a.y
        self.a2x = b.x
        self.a2y = b.y

    def getLen(self):
        length = mt.sqrt((self.a1x - self.a2x)**2 + (self.a1y - self.a2y)**2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-15 22:07:49 | 显示全部楼层
self.a1.x = a.x    -> 把一个点的x赋值,为什么要赋a1.x??

还不如写个函数,直接接受两个点,然后计算呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-15 22:17:35 | 显示全部楼层
Twilight6 发表于 2020-7-15 21:59
你变量不能 a1.y ,这里 self 可以是因为 self 代表的是实例对象,self.代表的是这个实例对象里面的属 ...

谢谢您!

点评

客气了~  发表于 2020-7-15 22:18
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 23:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表