老师,def __sort_seed(self, anchor)里anchor为什么可以用任意变量名被传进来?
来源:13-10 sorted 排序
慕勒1019045
2018-12-07
这个anchor是从哪里传递过来的?
为什么可以用任意变量名把anchors里的[‘name’]传递进来?
如果用anchors的话能理解…
3回答
-
anchor是形式参数啊,这个叫什么都是可以的。建议再看看这个课程函数的部分。
012018-12-13 -
kryo
2019-02-28
这个函数需要和sorted函数联系起来看:
def __sort(self, anchors):
anchors = sorted(anchors, key=self.__sort_seed, reverse=True)
def __sort_seed(self, anchor):
r = re.findall('[\d\.]+', anchor['number'])
number = float(r[0])
if '万' in anchor['number']:
number = number * 10000
return number1. sorted函数中的anchors是一个iterable(可以循环的元素,可能是列表,也可能是字典),是可以被用 for 来循环的。
2. sorted 是 python 的一个内置函数,其功能是按照某种规则对 anchors 的内容进行排序,而这个规则是由 key 的值 self.__sort_seed(__sort_seed函数运算之后的返回值number) 来决定的。
3. self.__sort_seed 和 self.__sort_seed() 的区别,有了括号表示这个函数立即就要被执行;没有括号(在函数sorted中)表示的是,遍历anchors的值,(每次)将anchors的(一个)元素作为函数__sort_seed的参数传入函数__sort_seed中进行(一次)运算,并将函数__sort_seed运算后的返回值(这个例子是number)作为sorted函数的参数key进行比较(从而对anchors进行排序)。最终sorted函数将返回一个(按照升序或)降序排列的anchors的值的列表。
20 -
慕勒1019045
提问者
2018-12-10
谢谢老师回答,我还是不太明白
def __sort_seed(self, anchor) 这个方法是生成一个新的数字的数组吗?
是的话,这些数字是从哪里来的?
因为这个类里面其他的参数的源头都知道是怎么来的,比如下面
def __analysis(self, htmls):
def __refine(self, anchors):
def __sort(self, anchors):但是,def __sort_seed(self, anchor)里的anchor哪里来的,还是新生成的?
022019-02-28
相似问题