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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 1.类内部重新定义的函数,如加减等,可以直接用于类之间的使用? 2.def __add__(self, r):以此例,self可否换成任意字母?内部定义的函数中,其变量均为此类的类型? 待明日学习测验下
    查看全部
  • **kw是关键字参数,用于字典 iteritems()用于字典kw的遍历 setattr(self, k, v)就等价于self.k = v 综上就是,遍历dict kw 中的属性,给每个属性设置了属性值 # for i, j in kw.iteritems(): # setattr(self, i, j) self.__dict__.update(kw) print filter(lambda x: x == x.strip('__'),dir(p)) 输出结果:['age', 'course', 'gender', 'name']
    查看全部
  • 5.python中获取对象信息 type()/dir() /setattr() type() 函数获取变量的类型,它返回一个 Type 对象 dir() 函数获取变量的所有属性(方法),返回的属性是字符串列表, print filter(lambda x: x == x.strip('__'),dir(p)) #叠加filter使用过滤出用户自己定义的属性(去掉'__xxx__'这类的特殊属性) 如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数
    查看全部
  • 1. class 类名(父类名):(成员函数及成员变量) 子类可以继承父类的所有方法和属性,也可以重载父类的成员函数及属性, 须注意的是子类成员函数若重载父类(即名字相同),则会使用子类成员函数 在用类定义成对象时,会先调用__init__构造函数,以初始化对象的各属性, 类的各属性(成员变量)均可以在构造函数中定义,定义时只要加上对象指针就好了。 而在对象销毁时,则会调用__del__析构函数, 定义类的成员函数时,必须默认一个变量(类似于C++中的this指针)代表类定义的对象本身,这个变量的名称可自行定义(一般为self) super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。 函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法, 注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。 使用super就是为了调用父类的构造函数来为子类对象进行初始化, 简化代码并且容错率更高。而且无需给出相应父类名称 2. 函数isinstance() 可以判断一个变量的类型,既可以用在Python内置的数据类型如str、list、dict, 也可以用在我们自定义的类,它们本质上都是数据类型。 返回布尔值 格式: isinstance(类的实例/对象或变量,类/数据类型) 在一条继承链上,一个实例可以看成它本身的类型,也可以看成它父类的类型。 3.python中多态 父类同一属性被不同的子类继承; 但是,这样属性在各个子类表现却不相同,即呈现多态; 从这个角度说,是需要子类继承父类,却又要重新编写属于自己的属性(方法也是属性) 先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。 任何对象,只要有read()方法,就称为File-like Object,都可以传给json.load() 4.多重继承 class MyClass(父Class1,父Class2) 使用super()函数,父类的init构造函数 只会被执行1次
    查看全部
  • 多态:调用自身的方法定义,如果没有,则调用父类定义。 动态语言调用实例方法,不检查类型,只要方法存在,参数正确就可以调用。
    查看全部
    0 采集 收起 来源:python中多态

    2017-08-15

  • filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
    查看全部
  • 字符串前面加r,表示的意思是禁止字符串转义,这道题不加也是可以成功的
    查看全部
    0 采集 收起 来源:python中多态

    2017-08-15

  • 任何对象,只要有read()方法,就称为File-like Object,都可以传给json.load()。
    查看全部
    0 采集 收起 来源:python中多态

    2017-08-15

  • 解释器内部会将**kw拆分成对应的dict. setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v kw.iteritems()历遍字典kw的所有key和value,分别匹配k,v
    查看全部
  • 直接把lambda函数复制给self.get_grade和绑定方法有所不同,函数调用不需要传入self,但是方法调用需要传入self.
    查看全部
  • 匿名函数 lambda x: x * x 实际上就是: def f(x): return x * x 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。 使用匿名函数,可以不必定义函数名,直接创建一个函数对象,很多时候可以简化代码:
    查看全部
  • python之定义实例方法: 两种方法: 1.在类Class里直接定义,用实例对象调用方法函数。 2.在类外定义方法,用types.MethodType(方法,实例对象,类)将方法绑定到类实例上 认识lambda函数: lambdb实际上是一个表达式函数而不是一个语句 语法是:lambda后面跟一个参数或多个参数,跟冒号,后面跟一个表达式 lambda x:x+1 lambda: 'A'等价于return'A',相当于一个函数f,那么f()='A'.因此,p1.get_grade=f,p1.get_grade()=f() 就是这个意思,但没有说全 p1.get_grade是属性,只不过这里的属性是一个函数对象,即f p1.get_grade()是方法,前面的p1就是调用这个方法的对象,即实例,整句来说就是实例方法
    查看全部
  • python中,所有的函数都是可调用对象,一个实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__(). 定义父类(object).本例子中p('tim)即是传入参数,从而调用函数__call__,所以tim 就是赋值到friend中的参数 class Fib(object) 后面def __call__(self, num), 后面可以不是 def __init__() 简化的引入数列符号[],巧妙的引入for in 循环,然后先L.append(a),再引入a,b 等式,最后返回L class Fib(object): def __init__(self, num): a, b, L = 0, 1, [] for n in range(num): L.append(a) a, b = b, a + b self.numbers = L def __str__(self): return str(self.numbers) __repr__ = __str__
    查看全部
    0 采集 收起 来源:python中 __call__

    2017-08-14

  • Student类的__slots__只需要包含Person类不包含的score属性即可。 如:__slots__ = ('score',) __slots__的目的是限制当前类所能拥有的属性,如果不需要添加任意动态的属性,使用__slots__也能节省内存。
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-08-14

  • @property---这是关键字,固定格式,能让方法当“属性”用。 @score.setter---前面的"score"是@property紧跟的下面定义的那个方法的名字,"setter"是关键字,这种“@+方法名字+点+setter”是个固定格式与@property搭配使用。
    查看全部
    0 采集 收起 来源:python中 @property

    2018-03-22

举报

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

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