带点的Python函数
我已经定义了一个称为带点的Python函数,python,Python,我已经定义了一个称为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中有一些函数使用点表
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)
?您可以将有序对包装到自己的类中,其中包含您提到的方法(方法==类中的函数)
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
点用于使用对象名访问类的方法。如果要使用点运算符访问该对象,请使用方法applyfunction为类创建一个名为f的对象。然后你就可以完成你想要的任务了这些被称为方法。它们是类属性。当通过类实例调用时,它们成为绑定方法,第一个参数绑定到类实例。所以你的问题是,“定义一个类对我的应用程序有帮助吗?”我想你是在问如何将applyfunction函数作为一个方法添加到集合中。不要这样做,只使用函数。@jonrsharpe我只想用这一种一次性的方式来展示从一组有序对到一个函数的想法。请注意,这类事情(“两个方法,其中一个是
\uuu init\uuuu
”)在正常情况下也是如此。@jonrsharpe我也这么认为,但我也认为他只是想要一个例子,让他首先了解这个点方法。