【发布时间】:2022-01-17 17:32:42
【问题描述】:
我目前正在学习 Python 教程,在观看了有关创建类和定义其方法的课程后,我想知道是否可以组合方法。
所以不要使用:
class Coordinates:
def point1(self):
print(x)
def point2(self):
print(y)
def point3(self):
print(z)
x = 5
y = 4
z = 9
Coordinates.point1(x) / Coordinates.point2(y) / Coordinates.point3(z)
我可以改用它来调用 x、y 或 z:
class Coordinates:
def point(self):
print(x or y or z)
x = 5
y = 4
z = 9
Coordinates.point(x/y/z)
如果我这样做,尽管我总是在终端上得到 x 的数字 5,无论我使用 x、y 还是 z 作为 self。
感谢您的任何意见:)
【问题讨论】:
-
你想做什么?
x or y or z将评估为x只要x不是0每次 -
在第二个示例中,您传递了 x/y/z 的算术结果,但没有使用它。在 point() 函数的上下文中,x、y 和 z 指的是同名的全局变量。正如@C.Nivs 所问,您尝试/希望实现什么目标?
-
我正在尝试缩短代码,以便我可以使用 Coordinates.point(x, y or z) 根据使用的字母调用正确的坐标,而无需为 x 创建三个单独的方法, y 和 z
-
什么是重点?什么是坐标?一般来说,圆坐标是点的属性,反之亦然。
-
@Creyze 输出中只得到 5 的原因是因为你有使用或条件。如果您的第一个条件为真,即在这种情况下是 x 它不会进一步检查条件并每次都打印(x)。感谢您加入 stackoverflow
标签: python class methods defined