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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • try的作用是捕获错误,并在捕获到指定错误时执行except语句。
    查看全部
  • import math from math import pow,sin,log直接引用math模块的某几个函数,而不是所有函数。
    查看全部
  • http://wangwei007.blog.51cto.com/68019/1134323 capitalize() 首字母大写,其余全部小写 upper() 全转换成大写 lower() 全转换成小写 title() 标题首字大写,如"i love python".title() "I love pytho
    查看全部
  • 1.模块导入 要使用一个模块,我们必须首先导入该模块 注意到os.path模块可以以若干种方式导入: import os import os.path from os import path from os.path import isdir,isfile 2.当导入的函数名字相同起冲突时 import..as.. math模块有一个log函数,logging模块也有一个log函数 如果同时使用,如何解决名字冲突 ->给函数起个“别名”来避免冲突 from math import log from logging import log as logger # logging的log变成logger print log(10) # 调用的是math的log logger(10, 'import from logging') # 调用logging的log 3.动态导入模块 try .. expect .. StringIO与cStringIO StringIO是纯Python代码编写的 cStringIO 部分函数是C写的,cStringIO 运行速度更快 如果导入的模块不存在,Python解释器会报 ImportError 错误 try...except #try 捕获错误,捕获到指定错误时执行 except 语句 try: from cStringIO import StringIO #先从cStringIO导入,捕获错误 except ImportError: from StringIO import StringIO #如果失败了(比如cStringIO没有被安装),再尝试从StringIO导入 3.__future__模块 __future__(future单词前后双下划线) Python的新版本会引入新特性, 当新版本的一个特性与旧版本不兼容时,在旧版本中导入到__future__ 以便旧的代码能在旧版本中测试新特性 4.python安装第3方模块 官方推荐:内置的pip工具 安装步骤 a.进入到pip工具所在目录: pythonxx\Scripts b. pip install web.py #安装第3方模块web.py https://pypi.python.org/pypi #下载第三方模块
    查看全部
  • def __cmp__(self, s): if self.score == s.score: return cmp(self.name, s.name) return -cmp(self.score, s.score) 注意,__cmp__是我们自定义的,而cmp( x, y )函数是python本来就有的,可以直接调用,它的默认功能是**cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。**(“从小排到大”),它的返回值是**如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。**,也就是它的返回值是一个整数,即-1,0,1。
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2018-03-22

  • import math 导入函数 math.sqrt()为平方根运算
    查看全部
  • 7.定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外部访问 从类的内部可以访问私有属性,定义实例方法就是在类中定义函数, 它的第一个参数永远是self,指向调用该方法的示例本身,其他参数和普通函数完全一样 class Person(object): def __init__(self, name): self.__name = name def get_name(self): return self.__name #实例方法内部可以访问所有实例属性,包括__开头的 #__init__(self, name)其实也可看做是一个特殊的实例方法 调用实例方法必须在实例上调用(先实例化对象,再用对象来调用) p1 = Person('Bob') #实例化类 print p1.get_name() #self不需要显式传入 在实例方法内部,可以访问所有实例属性, 这样,如果外部需要访问私有属性,可以通过方法调用获得, 这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度。 8.python中方法也是属性 属性可以是普通的值对象,如 str,int 等,也可以是方法,还可以是函数 在 class 中定义的实例方法其实也是属性,它实际上是一个函数对象 9.定义类方法 class Person(object): count = 0 @classmethod def how_many(cls): return cls.count 属性类似,方法也分实例方法和类方法。 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。 类方法的第一个参数将传入类本身,通常将参数名命名为 cls,#也可以为其他任意参数,但是必须有参数 上面的 cls.count 实际上相当于 Person.count @classmethod 修饰的函数必须要有一个参数
    查看全部
  • 4.访问限制(类的属性不希望被外部访问) Python对属性权限的控制是通过属性名来实现的, #如果一个属性由双下划线开头(__),该属性就无法被外部访问 #以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用 通常我们不要把普通属性用"__xxx__"定义。 #单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。 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 AttributeError: print ("AttributeError occured") 5.创建类属性 相当于静态成员变量 #类是模板,而实例则是根据类创建的对象。 #绑定在一个实例上的属性不会影响其他实例, #但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性, 并且,所有实例访问的类属性都是同一个! #也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。 定义类属性可以直接在 class 中定义: #因为类属性是直接绑定在类上的,所以,访问类属性不需要创建实例,就可以直接访问: class Person(object): address = 'Earth' Person.address #类属性不需要创建实例,就可以直接访问 一个实例调用类的属性也是可以访问的,所有实例都可以访问到它所属的类的属性 p1 = Person('Bob') print p1.address #实例可以直接访问到它所属的类的属性 6.python中类属性和实例属性名字冲突怎么办 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问 千万不要在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性
    查看全部
  • 1.定义类&创建实例: class Person(object): pass #(object),表示该类是从哪个类继承下来的;类名以大写字母开头 类名以大写字母开头 创建类的实例化对象: 类名() #类似函数调用的形式创建实例 2.动态创建类的实例属性: 对每一个实例,都可以直接给他们的属性赋值 xiaohong.grade = xiaohong.grade + 1 #实例的属性可以像普通变量一样进行操作 class Person(object): pass p1 = Person() p1.name = 'Bart' p2 = Person() p2.age = 18 #给p2加上的属性不一定要和p1相同 3.初始化实例的属性:def __init__ (self) 相当于java中的构造方法 虽然我们可以自由地给一个实例绑定各种属性, 但是,现实世界中,一种类型的实例应该拥有相同名字的属性。 例如,Person类应该在创建的时候就拥有 name、gender 和 birth 属性 __init__()方法,当创建实例时,__init__()方法被自动调用 def __init__(self)是构造函数,创建实例时必须有。 如果你不需要创建这个类的对象,那么就直接pass class Person(object): def __init__(self, name, gender, birth): self.name = name self.gender = gender self.birth = birth #__init__() 方法的第一个参数必须是 self #利用关键字参数 **kw 打包关键字参数成dict给函数体调用 #初始化实例的属性,同时也具备普通函数的功能, 每执行一次就计算函数内容的运算,函数里面引用类的属性需要带上类名 for k, v in kw.items(): #历遍字典kw的所有key和value,分别匹配k,v setattr(self, k, v) #setattr(object, name, values) 给对象的属性赋值,若属性不存在,先创建再赋值。
    查看全部
  • math.sqrt
    查看全部
  • 匿名函数的作用主要是用来简化代码,直接传入匿名函数更加方便。 关键字lambda表示匿名函数,匿名函数有限制,只能有一个表达式,不写return,返回值就是该表达式的结果。使用您冥函数,可以不必定义函数名,直接创建一个函数对象,很多时候可以简化代码。 另外,学习一个东西:return s and len(s.strip())>0
    查看全部
  • 先将数据转换为float类型再运算,即可获得结果的float类型。
    查看全部
  • decorator本质上就是一个高阶函数,接受一个函数作为参数,然后返回一个新函数。 使用decorator用Python提供的@语法。
    查看全部
  • class Person(object): __slots__ = ('name', 'gender') def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): __slots__ = ('score') def __init__(self,name, gender,score): super(Student, self).__init__(name, gender) self.score=score s = Student('Bob', 'male', 59) s.name = 'Tim' s.score = 99 print s.score
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-08-16

  • 这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前
    查看全部

举报

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

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