我定义了一个调用的有序对f,并定义了一个函数applyfunction,该函数遍历有序对,查看要比较的第一个值,并在匹配时打印第二个值。f = {(1,2),(2,4),(3,6),(4,8)}def applyfunction (f,x): for xy in f: if xy[0]==x: print(xy[1])applyfunction(f,3)上面的工作就像我想要的那样。与此同时,我看到在 python 中有一些函数有一个点符号,我认为这在这里很有用。所以我的问题是,如何重写applyfunction定义以便我可以使用以下符号:f.applyfunction(3)?
2 回答

肥皂起泡泡
TA贡献1829条经验 获得超6个赞
您可以将有序对包装到您自己的类中,其中包含您在其中提到的方法(类中的方法 == 函数)。
class OrderedPairWrapper():
def __init__(self, op):
self.op = op
def applyfunction (self, x):
for xy in self.op:
if xy[0]==x:
print(xy[1])
f = {(1,2),(2,4),(3,6),(4,8)}
f = OrderedPairWrapper(f)
print(f.applyfunction(3))
# 6

慕姐4208626
TA贡献1852条经验 获得超7个赞
点用于使用对象名称访问类的方法。如果要使用点运算符访问它,请为具有方法 applyfunction 的类创建一个名为 f 的对象。然后你就可以完成你想要的任务
添加回答
举报
0/150
提交
取消