这是我的代码。

如何执行print_point行? 编辑工作。 谢谢

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

    def distance_from_origin(self):
        return ((self.x **2) + (self.y **2)) **.5
    def print_point(p):
        print '(%s, %s)' % (str(p.x), str(p.y))

以下是我在运行模块后输入shell的内容:

p = Point(5,2)

p.x

    5

p.y

    2

p.distance_from_origin()

    5.385164807134504

p.print_point(p)

    Traceback (most recent call last):
    File "<pyshell#196>", line 1, in <module>
    p.print_point(p)
    TypeError: print_point() takes exactly 1 argument (2 given)

===============>>#1 票数:2

目前尚不清楚你想要什么,因为你的缩进是错误的。 print_pointprint_point一部分吗?

如果是这样,你在distance_from_originself权利,但也许不在print_point

def print_point(self):
    print '(%f, %f)' % (self.x, self.y)

它是合法的, 但一个坏主意 ,使用了不同的名称self参数,如您p

(请注意,打印的行动本身会做str转换为你...)

或者你是否希望print_point不在课堂上,在这种情况下你应该按原样使用(px, py) 或者,正如其他答案所建议的那样, 静态方法?

===============>>#2 票数:0 已采纳

添加self作为第一个参数或print_point 您还需要使用self前缀来引用xy ,因为这些字段属于实例。

def print_point(self):
     print '(%s, %s)' % (str(self.x), str(self.y))

===============>>#3 票数:0

您在函数distance_from_origin使用self作为参数。

但是您在函数print_point选择了p作为参数。

实际上,它适用于p

>>> p = Point(5,2)
>>> p.print_point()
(5, 2)

但是有一个约定使用self将类的实例传递给方法。 否则一切都变得非常麻烦。

此外, %s使用str方法将对象转换为字符串。 因此,无需手动转换为字符串。

考虑到这一切,函数print_point将如下所示:

def print_point(self):
    print '(%s, %s)' % (self.x, self.y)

点坐标由数字表示,因此您可能希望使用特殊方法进行数字输出。

字符串有一种新的format方法。 它绝对存在于Python 2.7中 只需查看示例并为您的案例选择最满意的输出格式。 例如,你可以这样做:

def print_point(self):
    print('({self.x}, {self.y})'.format(self=self))

  ask by SwimBikeRun translate from so

未解决问题?本站智能推荐:

2回复

函数,可调用对象以及如何在Python中创建它们

我想知道函数和可调用对象之间更复杂的差异。 例如,如果你这样做: 功能和可调用对象之间显然存在很大差异。 但是,我找不到很多关于幕后发生的事情的文档。 我知道函数是一流的对象,但我也知道类比常规函数要多得多。 class foo2是使用元类type() 。 那么我的问题是:
3回复

如何在Python中调用其他对象的方法?

我是python的新手,我有一个小问题,我有两个类,它写道:set_gyro_angle()恰好接受1个参数(给定2个)如何从Machine方法调用set_gyro_angle()方法? 主要:
2回复

如何在Python对象的模拟方法中调用self?

我尝试测试一些代码,这些代码除了将结果保存到数据库外不会返回任何内容。 通过模拟save方法,我希望检查事物是否已正确处理: 但是,似乎不允许这样做。 它说参数不匹配的数量。 如果我定义def mock_save(),它将无法正常工作。 我怎么也可以引用模拟方法所作用的对
1回复

从函数内部创建的对象中模拟方法调用(python)

class Foo: def do_work: client = Client() client.widgets(self.widget_id).parts().get()`` 我有上面的代码。 Client()类在另一个包中定义。 我
1回复

如何在Python中并行调用列表中每个对象的方法

我有一个自定义对象列表,我想在每个对象上应用一个方法,该方法会更改对象的内部存储器。 我希望能够并行执行此操作,而不必随后返回对象。 从本质上讲,我希望等效于以下for(/ each)语句,但要并行执行。 for env, p, v in zip(envs, policy, value
2回复

如何在Python中从当前对象的方法调用另一个对象的方法

我正在尝试以图形方式模拟沿着道路行驶的汽车。 每个Road对象都有一个源和目标。 当汽车到达路的尽头时,我希望这条路将其发送到下一条路的起点。 对于Road类,我的代码如下所示: 在上面的代码中,问题出在方法iterate()的其他部分:我如何从当前对象的方法中调用另一个对象的方法
1回复

如何在python中调用函数

有一个函数def on_ticks(ws,ticks) ,此函数的作用是从市场上获取股票的报价价格: 现在,我需要创建一些策略,并为策略定义一个新函数def compute_orb() 由于在此函数中我需要来自on_ticks函数的报价数据,因此我需要知道如何在calculate
2回复

如何在python中调用函数?

我仍然是python的新手,我需要使用PyAstronomy模块编写代码。 我想将此函数作为另一个代码的输入调用: def phaseAngle(pos, los='-z'): """ Calculate the phase angle. Parameters
1回复

如何在Python对象上调用全局函数?

我看过以下页面: https : long_lshift但似乎没有任何方法可以调用long_lshift或long_or类的函数。 对我来说,调用这些函数不是必需的,我也可以使用更通用的版本,尽管我更喜欢调用这些函数。 无论如何,有没有办法使用这些? 我需要包括什么? 以下是一些示例
2回复

我可以使用哪些方法将结构返回给共享对象中的函数的Python Ctypes调用?

我有以下C文件正在编译为共享库。 然后,我通过python中的ctypes加载.so共享库。 我可以从ctypes调用该函数,并且该函数会打印正确的温度和湿度,但是我似乎无法从主代码中获取该结构。 如何从C函数取回结构,以及如何在python中从结构检索字段。