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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2: >>> import functools >>> int2 = functools.partial(int, base=2) >>> int2('1000000') 64 >>> int2('1010101') 85 所以,functools.partial可以把一个参数多的函数变成一个参数少的新函数
    查看全部
    0 采集 收起 来源:python中偏函数

    2018-03-22

  • int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做 N 进制的转换
    查看全部
    0 采集 收起 来源:python中偏函数

    2018-03-17

  • 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。
    查看全部
  • 带参数的decorator需要三层嵌套,是因为: 最里一层,必然是一个参数列表为(*args,**kw)的wrapper,执行自身逻辑与运行目标函数,返回的是目标函数的执行结果; 倒数第二层,必然是一个参数列表为(f)的函数,用来接受目标函数,以供wrapper调用(闭包),并返回wrapper; 如果是无参数decorator,这时已经够了,python解释器会自动把@decorator转换成 f=decorator(f); 但如果是有参数decorator,还需要最后一层,因为还有一个decorator自身的参数要传递以供内部闭包使用。因此,最外一层就是decorator,参数列表为decorator自身需要的参数列表,返回的其实还是内部的wrapper。(因为外两层只为传递参数,并没有自身逻辑实现)
    查看全部
  • 实例的属性在类下面定义初始化函数__init__(self,....),类的属性是类下面所有实例共有的,直接在类class下定义
    查看全部
  • 就我觉得越来越难了吗?
    查看全部
  • 初始化 super(subclass, self).__init__(*args)
    查看全部
  • class Person(object): __count = 0 @classmethod def how_many(cls): return cls.__count @classmethod def set_many(cls,number): cls.__count = number def __init__(self,name): self.name = name number = self.how_many() number = number + 1 self.set_many(number) print Person.how_many() p1 = Person('Bob') print Person.how_many()
    查看全部
  • p1 = Person('Bob', 90) p1.get_grade = types.MethodType(fn_get_grade, p1, Person) 直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。
    查看全部
  • 1、 _xx 以单下划线开头的表示的是protected类型的变量。即保护类型只能允许其本身与子类进行访问。若内部变量标示,如: 当使用“from M import”时,不会将以一个下划线开头的对象引入 。 2、 __xx 双下划线的表示的是私有类型的变量。只能允许这个类本身进行访问了,连子类也不可以用于命名一个类属性(类变量),调用时名字被改变(在类FooBar内部,__boo变成_FooBar__boo,如self._FooBar__boo) 3、 __xx__定义的是特列方法。用户控制的命名空间内的变量或是属性,如init , __import__或是file 。只有当文档有说明时使用,不要自己定义这类变量。 (就是说这些是python内部定义的变量名)
    查看全部
  • 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。 千万不要在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。
    查看全部
  • class Person(object): count = 0 def __init__(self,name): self.name = name Person.count = Person.count + 1 p1 = Person('Bob') print Person.count p2 = Person('Alice') print Person.count p3 = Person('Tim') print Person.count
    查看全部
  • _xxx 和 __xxx 的区别是: _xxx 可以在子类中使用。 __xxx 不可以在子类中使用。 print p._Person__score就可以打印出来了,Python的私有是伪私有
    查看全部
  • class Person(object): def __init__(self, name, score): self.name = name self.__score = score p = Person('Bob', 59) print p.name try: print p.__score except: print 'attributeerror'
    查看全部
  • >>> isinstance(p, Person) True instance()可判断变量的类型 Type()函数返回变量的类型 dir()函数获取变量的所有属性,包括自定义属性。 filter()函数可以过滤掉不符合条件的属性,只保留符合条件的属性。 如果已知一个属性名称,要获取设置对象的属性,就要用geychar()和setattr()函数 >>>getattr(s,'name') 'Bob' >>>setattr(s,'name','Adam') >>>s.name 'Adam' >>>getattr(s,'age')属性不存在,报错 >>>getattr(s,'age',20)属性不存在,返回默认值20
    查看全部

举报

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

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