Python论坛  - 讨论区

标题:关于oop

2011年02月02日 星期三 20:23

我的天哪。。今天弄了大半天了,小小几行代码就是搞不定。。

 

之前一直用函数写脚本。但是现在东西越来越大。。感觉不用oop不行了。

于是乎弄了一上午,短短几行代码就是搞不定。。

 

 

class Point:

    def __init__(self, x=0, y=0):

        self.x = x

        self.y = y

 

    def distance(self):

        return ((self.x ** 2) + (self.y ** 2) ** 0.5)

 

if '__name__' == '__main__':

    P = Point(3,4)

    r = P.distance

    print r

 

 

运行了以啥都没有。好歹在屏幕上出现个5啊。。。

但是如果在intractive cosole里面输入 P.x或者P.y的话都有,

但是输入 P.distance 就会出现

<bound method Point.distance_from_origin of <__main__.Point instance at 0x0345A440>>

 

何解?

2011年02月03日 星期四 04:23

试一下 P.distance(),

 

另外  return ((self.x ** 2) + (self.y ** 2) ** 0.5),这行有问题,应该是( (self.x ** 2) + (self.y ** 2) )**0.5

2011年02月03日 星期四 08:03

if  __name__ == '__main__':

没有执行当然运行之后什么都没有

 

2011年02月03日 星期四 09:54

恩,格式应该是

 

if  __name__ == '__main__':

P = Point(3,4)

    r = P.distance

    print r

 

__name__没有引号

2011年02月03日 星期四 17:12

恩。。。谢谢大家。。

 

没有引号和括号正解。。。

 

 

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号