最赞回答 / 子木李
在Python,有两种属性,类属性和实例属性,类属性相当于类的静态方法(类比于Java),实例属性是每个实例单独的属性,楼主所说的用Person.count,这里调用的就是类属性,self.count调用的是实例属性,当在_init_中调用的是self时,然后打印的时候调用的是Person.count,那么count肯定是它的初始值0了,因为它没有改变,用self.count,改变的只是实例的属性,并没有改变类属性,所以打印出三个0了,如果楼主把print那个部分的Person换成p1,p2,p3的时候,...
2015-10-23
之前说的好像还是有所不妥,可以这样理解。
在改动之前,f()函数中,都是直接对变量i做引用。因为i的值一直在变化。所以,最终结果是3个9
改动后,因为嵌套了一层函数调用。在g()中,都是对f(j)的参数j做引用。而因为r = f(i),所以实际结果变为f(1),f(2),f(3)
在改动之前,f()函数中,都是直接对变量i做引用。因为i的值一直在变化。所以,最终结果是3个9
改动后,因为嵌套了一层函数调用。在g()中,都是对f(j)的参数j做引用。而因为r = f(i),所以实际结果变为f(1),f(2),f(3)
2015-10-23
这一节,一开始也没明白。后面买了本Python核心编程看了下,才明白原因。首先,我们需要知道,Python中一切变量皆是对象。所有变量之间,用"="操作符赋值或者是函数之间的参数传递,都是引用,而不是像C和Cpp一样拷贝。
例如 a = 1, b = a。类似C++:
int x = 1
int& a = x; // 在Python中,a = 1,就是对象a对 对象'1'做一个引用。
int& b = a;
当然,不同的是,你还可以a = 3;让a去引用3。而Cpp中,是不能变更引用对象的。
或者这样理解:
int x = 1;
int* a = &x;
int* b = &(*a);
例如 a = 1, b = a。类似C++:
int x = 1
int& a = x; // 在Python中,a = 1,就是对象a对 对象'1'做一个引用。
int& b = a;
当然,不同的是,你还可以a = 3;让a去引用3。而Cpp中,是不能变更引用对象的。
或者这样理解:
int x = 1;
int* a = &x;
int* b = &(*a);
2015-10-23
import functools
sorted_ignore_case = functools.partial(sorted, cmp = lambda x, y: cmp(x.lower(), y.lower()))
print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
sorted_ignore_case = functools.partial(sorted, cmp = lambda x, y: cmp(x.lower(), y.lower()))
print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
2015-10-22
网上查了一下,sort函数原型;L.sort(cmp=None, key=None, reverse=False) . cpy()为内建函数,在python3.X中已经取消用法了,改为可以用key=xx,key接受的函数返回值,表示此元素的权值,sort将按照权值大小进行排序。这个老师不讲直接做真的跨度很大啊……
2015-10-22
写个简洁的
def calc_prod(lst):
def a():
return reduce((lambda x,y: x*y),lst)
return a
f = calc_prod([1, 2, 3, 4])
print f()
def calc_prod(lst):
def a():
return reduce((lambda x,y: x*y),lst)
return a
f = calc_prod([1, 2, 3, 4])
print f()
2015-10-21
最赞回答 / 解剖器
sorted默认是sorted([4,6,8,2等等],cmp)cmp是里面介绍的输出-1、1或者0,sorted函数通过cmp的返回值来判断比较的两个数的前后顺序。相当于是cmp为sorted提供对比的标准,sorted按照那个标准来排序。sorted函数只认识cmp返回的1、-1和0,并且按照上面介绍的规则来排序。至于从大到小还是从小到大完全取决于cmp的定义。sorted的排序算法是python设计好的,我们并不需要知道。如果你接触过其它的语言,在设计到排序时会接触一些排序的算法,那些算法有好有坏,...
2015-10-21