我定義了一個調用的有序對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
提交
取消