为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
class Person(object):

def __init__(self, name, gender, **kw):
self.name=name
self.gender=gender

for k,v in kw.iteritems():
setattr(self,k,v)

p = Person('Bob', 'Male', age=18, course='Python')
print p.age
print p.course

已采纳回答 / 慕粉9409001
这是为类创建类的实例时,self参数是一个指向实例本身的引用,用于访问类中的属性和方法

已采纳回答 / 梦编猿
因为取模的前提条件是两边的操作数必须是整数。或者还有一种方法(伪代码):if( int(num) == num ){...}
哎呀玛雅脑瓜疼!来个师博给带下!

最赞回答 / 梦编猿
如果明白了 类属性 和 实例属性 的区别,其实就差不多的规则。

最赞回答 / 慕粉1149065707
你这两种代码,咋一看没区别,其实有区别的啊,本质上的区别就是:左边的是最后调用的时候,是调用fn(x),fn(x)函数封装了变化,实际上print('call')与原来的f1函数是作为一个整体封装咋fn(x)里面,print是在f1函数上的拓展。而右边,不能看成是拓展,你只能看成是在原f2函数的逻辑之前,在加了一个print('call')打印的逻辑。如果还是有点懵逼,我只能举个粒子了:你试试左边再多调用几次print(f1(6))print(f1(7))这当然是正常的,但是右边很容易出问题,如果你是这样...
A_T
代码有错,在print 'call %s() in %fs' % (f.__name__, (t2 - t1))中的%fs 改为%f s,就是在f和s之间加一个空格

最新回答 / 划水人
可以接所有的异常,包括用户自定义的。如果不给,默认catch所有的异常。

最赞回答 / 五岁麻瓜少年
int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做 N 进制的转换:
这节课讲的什么没听懂。特殊方法?默认调用?

已采纳回答 / 慕UI8134040
两端代码其实是一样的。因为你在定义第二个函数def f(j=i)的时候引用了另外一个变量j,此时数组中的引用变量指向的也不是i,而是j所指向的内容。但是这里又因为外面套了一个for循环,所以,可以看做循环一次,调用一个变量j。如果你理解堆和栈,那就更容易理解了。总之,你可以理解成你的这个代码是答案的简写版。
self.name 有一个参数,setattr有两个参数
map()----返回一个List列表,接收单个参数map(f(*),List)列表每个参数运用函数

reduce()---返回一个List列表,接收两个参数reduce(f(*,*),List)列表每个参数累加或累剩

filter()---返回一个筛选之后List,接收单个参数filter(f(*),List)

sorted()---自然排序返回List列表,可以接收多个参数,sorted(List,cmp,key)

已采纳回答 / 慕移动9027787
这里self传入的参数是实例而不是类,你这样写是让添加了实例的属性__count,并且每次加1,而类的属性__count并没有变化
讲解得很详细,谢谢老师
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消