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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 解释器内部会将**kw拆分成对应的dict. setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v kw.iteritems()历遍字典kw的所有key和value,分别匹配k,v
    查看全部
  • 序列化serialization是将对象的信息转化成可以存储或网络传输的过程,传输的格式可以是XML,JSON,json.dumps是将一个Python数据类型列表进行json格式的编码解析,encoding
    查看全部
  • 方法一:需要用 types.MethodType() 动态为对象实例添加函数。把一个函数变为一个方法: import types p1.get_grade = types.MethodType(fn_get_grade, p1, Person) types.MethodType,它接受三个参数,第一,你要绑定的函数,第二,对象,第三,绑定的类 注意,该绑定的方法只是对象p1的方法,其他无法调用 体现出动态的话就是types.MethodType的后两个参数了 方法二:self.get_grade = lambda: 'A' 就等同与x = f , self.get_grade() = f() 因为匿名函数lambda:"A"没有self参数,因此是函数而不是方法 lambda:'A'等价于return ‘A’相当于一个函数f,那么f()=‘A’因此,p1.get_grade=f,p1.get_grade()=f() p1.get_grade是属性,只不过这里的属性是一个函数对象,即f p1.get_grade()是方法,前面的p1就是调用这个方法的对象,即实例,证据来说就是实例方法。 函数和方法定义是一样的,在本节中之所以函数调用不需要传入self ,而方法需要,是因为函数不是依附类而在,而方法是在类中定义的 self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。 self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗,不要搞另类,大家会不明白的。
    查看全部
  • 类属性指的是不在__init__函数里面定义的属性,所有实例公用类属性,实例属性是在__init__函数里面的self.XXX定义的
    查看全部
  • 使用双下划线的属性不会被外部引用
    查看全部
  • kw.iteritems()返回一个字典
    查看全部
  • 遍历字典 for key, value in d.items(): ...: print key, 'corresponds to', value
    查看全部
  • 要定义关键字参数,使用 **kw;使用setattr(self, k, v)可以设置键值对,相当于self.k = v; *args是非关键字参数,用于元组,**kw是关键字参数,用于字典 1.*args def tupleArgs(arg1, arg2= 'B', *arg3): print('arg 1:%s ' % arg1) print('arg 2:%s ' % arg2) for eachArgNum in range(len(arg3)): print('the %d in arg 3 :%s ' % (eachArgNum,arg3[eachArgNum])) def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth for k, v in kw.iteritems(): setattr(self, k, v)
    查看全部
  • __init__其实就是一个构造函数,在实例化对象的时候自动调用
    查看全部
  • 实例化Python对象不用使用new,直接像调用方法一样
    查看全部
  • getattr(s, 'name') # 获取name属性 setattr(s, 'name', 'Adam') # 设置新的name属性
    查看全部
  • 这是动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。
    查看全部
    0 采集 收起 来源:python中多态

    2017-08-28

  • 直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。
    查看全部
  • 什么是闭包? 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-08-28

  • 实例中: 第一句:定义函数f(),无参数 第二句:函数体内的一个语句,不是函数的返回值 第三句:函数体里定义了另一个无参函数g() 第四句:该g()的函数体,输出一个语句 第五句:上层f()的返回值,函数g()的地址?
    查看全部

举报

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

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