我现在(或者我已经读过)在Python 2.x中不可能,也找不到Python 3,但也许我不知道如何搜索它... 使用简单的Python示例更容易解释它:
for i in range(11):
one_turtle.penup()
one_turtle.forward(50)
one_turtle.down()
one_turtle.forward(8)
one_turtle.up()
one_turtle.forward(8)
one_turtle.stamp()
one_turtle.forward(-66)
one_turtle.left(360/12)
我想避免像在VBA中那样重复“one_turtle”,这会产生类似于此的东西:
For i = 1 To 11
With one_turtle.penup()
.forward(50)
.down()
.forward(8)
.up()
.forward(8)
.stamp()
.forward(-66)
.left(360/12)
由With关键字生成的代码更清晰,更易于编写和读取(它需要End With
和Next
行,但我想集中讨论。我决定学习Python的主要原因之一是因为它被称为非常整洁并且与程序“类似”。真的不可能这样做吗?
答案 0 :(得分:3)
在您对所有这些成员方法的定义中,只需返回self
例如。像这样更改penup()
的定义:
def penup(self):
# Your logic
return self
答案 1 :(得分:0)
理想的解决方案是我认为已经发布,返回self
只是最干净的方式。但是,如果您无法编辑龟对象或其他任何内容,则可以创建别名:
forward = one_turtle.forward
... some code ...
forward()
现在,函数forward仅适用于one_turtle,简单示例
s = "abc"
x = s.upper
print(x()) # prints "ABC"