最新回答 / 哥雅的玛雅肖像
class Person(object): def __init__(self, name, gender, **kw): for eachKw in kw: setattr(self,eachKw,kw[eachKw]) p = Person('Bob', 'Male', age=18, course='Python')print p.ageprint p.course
2018-11-13
最新回答 / LotQin
上面是类的定义,写object代表着继承自object类。下面是对类进行实例化也就是创建类的对象,创建时调用的是__init__()方法,这个方法里面需要什么参数就在Person()里填入对应的参数。
2018-11-12
最赞回答 / Awful_Leo
按照a, b = b, a+b的写法,一开始a = 0, b = 1,则等号右边为1, 1则a, b = 1, 1如果按照a = b, b = a+b的写法,一开始对于 a = b这个式子来说b = 1,将此值赋给a,此时有 a = 1, b = 1然后对于b = a+b这个式子来说a + b = 2,将此值赋给b,此时有 a = 1, b = 2两个结果是不一样的,原因在于,按照第二个写法,a的值在第二个式子中使用之前已经重新赋过值;而在第一个写法中,等号右边的a和b先取初始值,然后再赋给左边。
2018-11-10
最新回答 / 慕运维5384406
它意思是用了装饰器的函数,因为用了装饰器则实际上返回的函数名等不对,如果有依赖这些函数的代码就会失效。然后参数那一块和这块不能混了吧。但是参数那块我有点不太懂,老师最后教的说把*args,**kw改成x是什么意思,改成x就能接收到多个参数(如果传进来多个参数)?可是代码直接写*args和**kw 没报错呀
2018-11-09
最赞回答 / KingToAce
因为Python提供的基本库builtinls.py中的object类定义好的函数,所有的类默认继承object类,有兴趣可以研究一下Python所提供的基本库
2018-11-08
最赞回答 / 慕粉1149065707
你这两种代码,咋一看没区别,其实有区别的啊,本质上的区别就是:左边的是最后调用的时候,是调用fn(x),fn(x)函数封装了变化,实际上print('call')与原来的f1函数是作为一个整体封装咋fn(x)里面,print是在f1函数上的拓展。而右边,不能看成是拓展,你只能看成是在原f2函数的逻辑之前,在加了一个print('call')打印的逻辑。如果还是有点懵逼,我只能举个粒子了:你试试左边再多调用几次print(f1(6))print(f1(7))这当然是正常的,但是右边很容易出问题,如果你是这样...
2018-11-03
最赞回答 / 慕盖茨02995
impor json是直接引入json的模块,python2.5及更早的版本不支持该模块,但是可以通过安装simplejson模块。import simplejson as json就是引入simplejson模块,并起别名为json
2018-10-30