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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • isinstance(object, classinfo)
    其中,object 是变量,classinfo 是类型即 (tuple,dict,int,float,list,bool等) 和 class类。

    若参数 object 是 classinfo 类的实例,或者 object 是 classinfo 类的子类的一个实例, 返回 True。
    若 object 不是一个给定类型的的对象, 则返回结果总是False。

    查看全部
  • 对于decorator的使用的总结:

    1. 作用:decorator,就跟它的名称一样:修饰,包装。简单说就是给原来的函数添加一些新功能。这种可以是批量级的处理,能减少我们的工作量。

    2. 无参数的decorator:在里面封装一个函数即可;

      如def performance(): 内部定义一个,一个,一个函数就可以了

    3. 有参数的decorator():在里面封装两个函数!!

    1. import time  


    2. def performance(unit): #用来接收装饰函数的参数 unit

    3.     def performance_decorator(f): #接收需要装饰的函数 f

    4.         def wrapper(*args, **kw): #接收实际函数所需要的参数 (*args, **kw)

    5.             t1 = time.time()  

    6.             f(*args, **kw) #运行实际的函数 f


    查看全部
  • 估计很多人没懂这个吧(self.p * r.q + self.q * r.p,  self.q * r.q)

    在这里p是分子,q是分母

    (self.p * r.q + self.q * r.p)这是有理化计算后的分子

    (self.q * r.q)这是有理化计算后的分母

    r.q是令一个加数的分子,r.p是另一个加数的分母

    例如:1/3+3/2  第一个分数的分子乘第二个分数的分母+第一个分数的分母乘第二个分数的分子(也就是交叉相乘再相加)最后得11(这是经过计算后得到的结果的分子)

    第一个分数的分母乘第二个分数的分母( self.q * r.q)得到结果是6 

    -------摘自评论区某位大神的平路,醍醐灌顶

    查看全部
  • def calc_prod(lst): def lazy_calc(): prod=1.0 for i in lst: prod*=i return prod return lazy_calc f = calc_prod([1, 2, 3, 4]) print f()
    查看全部
  • kw.iteritems() 是Python2的写法,Python3不支持

    Python3的写法为 kw.items(),两个版本互不支持

    setattr(x,y,z)  意思是:x.y = z


    查看全部
  • 1.面向对象编程

    是一种程序设计范式

    把程序看做不同对象的相互调用

    对现实世界建立对象模型

    基本思想:

    类:用于定义抽象类型

    实例:根据类的定义被创建出来

    2.

    在Python中,类通过 class 关键字定义

    Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的

    xiaoming = Person()

    sorted(L1,lambda p1,p2:cmp(p1.name,p2.name))排序

    self.__dict__.update(kw) 任意关键字参数

    def __init__(self, name):

            self.name = name

            self._title = 'Mr'

            self.__job = 'Student'


    只有以双下划线开头的"__job"不能直接被外部访问。但是,如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多

    预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。

    以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。

    3.

    类是模板,而实例则是根据类创建的对象

    实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。

    类属性是直接绑定在类上的,所以,访问类属性不需要创建实例,就可以直接访问:

    print Person.address 可以修改

    当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。

    实例的方法就是在类中定义的函数,它的第一个参数永远是 self

    方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法

    p1.get_grade = types.MethodType(fn_get_grade, p1, Person)

     @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls

    因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用


    查看全部
  • capitalize() 首字母大写,其余全部小写
    upper() 全转换成大写
    lower() 全转换成小写
    title()  标题首字大写,如"i love python".title()  "I love python"

    查看全部
  • 装饰器学习:

    http://blog.csdn.net/xiangxianghehe/article/details/77170585###;
    http://python.jobbole.com/82344/

    查看全部
  • Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。 如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性。 以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。
    查看全部
  • * 用来传递任意个无名字参数,这些参数会一个Tuple的形式访问;**用来处理传递任意个有名字的参数,这些参数用dict来访问。
    查看全部
  • 定义decorator def log(f): #定义装饰器高阶函数,以要装饰的函数f作为参数 def fn(x): #内部相当于重构要装饰的函数f,重命名为fn print 'call ' + f.__name__ + '()...' #加特技print return f(x) #为了不重写原来的函数f的代码,所以用return f(x)代替原来的代码。 return fn 将被装饰过的新的函数fn返
    查看全部
  • python3 sorted取消了对cmp的支持。 python3 帮助文档: sorted(iterable,key=None,reverse=False) key接受一个函数,这个函数只接受一个元素,默认为None reverse是一个布尔值。如果设置为True,列表元素将被倒序排列,默认为False 着重介绍key的作用原理: key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None 。
    查看全部
  • Python设计语言中的pass语句是一种占位语句,不做任何作用,主要用来保持代码格式的完整性。
    查看全部
  • 带参数的decorator需要三层嵌套,是因为: 最里一层,必然是一个参数列表为(*args,**kw)的wrapper,执行自身逻辑与运行目标函数,返回的是目标函数的执行结果; 倒数第二层,必然是一个参数列表为(f)的函数,用来接受目标函数,以供wrapper调用(闭包),并返回wrapper; 如果是无参数decorator,这时已经够了,python解释器会自动把@decorator转换成 f=decorator(f); 但如果是有参数decorator,还需要最后一层,因为还有一个decorator自身的参数要传递以供内部闭包使用。因此,最外一层就是decorator,参数列表为decorator自身需要的参数列表,返回的其实还是内部的wrapper。(因为外两层只为传递参数,并没有自身逻辑实现)
    查看全部
  • 区分包和普通目录:包下面必须有一__init.__.py文件,即使它是个空文件
    查看全部

举报

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

微信扫码,参与3人拼团

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

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