我定義了一個(gè)調(diào)用的有序?qū),并定義了一個(gè)函數(shù)applyfunction,該函數(shù)遍歷有序?qū)?,查看要比較的第一個(gè)值,并在匹配時(shí)打印第二個(gè)值。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)上面的工作就像我想要的那樣。與此同時(shí),我看到在 python 中有一些函數(shù)有一個(gè)點(diǎn)符號,我認(rèn)為這在這里很有用。所以我的問題是,如何重寫applyfunction定義以便我可以使用以下符號:f.applyfunction(3)?
2 回答

肥皂起泡泡
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以將有序?qū)Πb到您自己的類中,其中包含您在其中提到的方法(類中的方法 == 函數(shù))。
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貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
點(diǎn)用于使用對象名稱訪問類的方法。如果要使用點(diǎn)運(yùn)算符訪問它,請為具有方法 applyfunction 的類創(chuàng)建一個(gè)名為 f 的對象。然后你就可以完成你想要的任務(wù)
添加回答
舉報(bào)
0/150
提交
取消