为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • cmp比较两个元素的大小,如果返回1,就知道第一个元素大于第二个元素,将第一个元素移动至后面,返回0表示相等,返回-1表示第一个元素小于第二个元素,sorted根据cmp的返回值执行算法,将小的元素放前面,大的元素放后面,具体想了解cmp的,百度
    查看全部
  • python中定义实例方法 实例的私有属性就是以__开头的属性, 无法被外部访问,那这些属性定义有什么用? 从类的内部是可以访问的 在类中定义的函数 def get_name(self):第一个参数永远是 self 外部需要访问私有属性,可以通过方法调用获得, 这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度
    查看全部
  • python中类属性和实例属性名字冲突怎么办 如果在实例变量上修改类属性会发生什么问题呢? p1.address = 'China'并没有改变 Person 的 address,而是给 p1这个实例绑定了实例属性address 访问 p1.address 时,优先查找实例属性,返回'China'。 访问 p2.address 时,p2没有实例属性address,但是有类属性address,因此返回'Earth'。 当实例属性和类属性重名时,实例属性优先级高
    查看全部
  • 类是模板,而实例则是根据类创建的对象。 实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。 定义类属性可以直接在 class 中定义 类属性是直接绑定在类上的,所以,访问类属性不需要创建实例 对一个实例调用类的属性,所有实例都可以访问到它所属的类的属性 Python是动态语言,类属性也是可以动态添加和修改的
    查看全部
  • print p.__score 读取的是私有变量,会抛出异常,需要用try catch 来承接异常。 try: print p.__score except AttributeError: print ('attributeError')
    查看全部
  • lambda:读音(拉姆达),数学上常用符号,lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-03-02

  • lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。
    查看全部
  • __score不能被外部访问是因为Python解释器自动把class内部的__score变成了_Person__score“不能被外部调用”是指“不能用原来的名字被外部调用”,但是如果用p._Person__score也还是可以取到该属性值 (问答)
    查看全部
  • 1.属性不希望被外部访问到怎么办? Python对属性权限的控制是通过属性名来实现的 一个属性由双下划线开头(__),该属性就无法被外部访问 属性以"__xxx__"的形式定义,那它又可以被外部访问了
    查看全部
  • 就是把一个dict化成一排key-value对。这种方法就要用到两个** kw={'x':3,'y':4} *用法的出现也跟上面将的差不多,它就是把一个list,tuple化成一排输入的简写 f(*arg,x=3,y=4)
    查看全部
  • ' setattr()方法接受3个参数:setattr(对象,属性,属性的值) 字符串设置为对象的属性名使用setsttr setattr(self,k,v)相当于self.k = v kw.iteritems()历遍字典kw的所有key和value,分别匹配k,v **args是表示可以接收多个变量,**kw是可接收多个关键字参数,参数的类型是dic,args.iteritems()返回的是一个list r k, v in kw.iteritems(): setattr(self, k, v) **kw表示可以任意输入参数和对应的值,这些键值对被组织成字典dict,for k,v in kw.iteritems()表示对该字典的键值对进行迭代(k获得键,v获得值), iteritems()这个方法可以一个一个输出字典中的键值对,setattr(self,k,v)表示对实例自身设置属性和对应的值,self表示实例自身,k表示参数,v表示值。 self.__dict__.update(kw)##这一句是啥意思啊? 是把接收到的值加入到字典中 python字典的items方法作用:是可以将字典中的所有项,以列表方式返回。 python字典的iteritems方法作用:与items方法相比作用大致相同,只是它的返回值不是列表,而是一个迭代器 *args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前。 在python中,如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数 **kw是定义一个字典,其赋值形式是 key=value 形成的字典就是dict{key:value}!!!
    查看全部
  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)
    查看全部
    0 采集 收起 来源:python中闭包

    2017-03-02

  • import time def performance(f): def print_time(*args, **kw): print 'call '+f.__name__+'() in '+time.strftime('%Y-%m-%d',time.localtime(time.time())) return f(*args,**kw) return print_time @performance def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)
    查看全部
  • orted()这个函数不是已经提供排序算法了吗,为什么还要在里面用cmp()函数进行比较呢?(问答) sorted()函数提供了默认的cmp比较方法,但是也可以自定义这个cmp方法: 1、L2 = sorted(L1),这种情况就是使用默认的cmp方法; 2、L2 = sorted(L1,lambda p1,p2:cmp(p1.name,p2.name)),而这种情况下用自定义的匿名函数覆盖了默认的cmp方法 p3的参数呢 L1的list有p1,p2,p3 L2的list不用设置p3? 这边的p1,p2是比较函数的参数(换成其他x,y也是可以的),而不是确只实例p1,p2,
    查看全部
  • def log(f): def fn(x): print 'call ' + f.__name__ + '()...'#增加的函数功能 return f(x)# 返回原函数并调用 return fn#返回fn(x)
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类
友情提示:

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