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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  •  s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。

    当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')


    查看全部
  • class Person(object):
        def __init__(self, name, gender, birth, **kw):         # 使用 **kwargs 输入dict,然后用setattr(self,k,v)设置任意属性;
            self.name = name
            self.gender = gender
            self.birth = birth
            for k, v in kw.items():
                setattr(self, k, v)
    
    
    xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student')
    xiaohong = Person('Xiao Hong', 'Female', '1992-11-12')    # 实例化xiaohong是没有职业,看看是否出错,以及可否打印出job
    
    print("输出对象的信息:")
    print("姓名:"+xiaoming.name, "性别:"+xiaoming.gender, "出生日期:"+xiaoming.birth, "职业:"+xiaoming.job)
    # xiaohong在实例化是没有job属性,这里不能输出job;
    print("姓名:"+xiaohong.name, "性别:"+xiaohong.gender, "出生日期:"+xiaohong.birth) # , "职业:"+xiaohong.job)
    
    """
    File "F:/python学习/gj_03_面向对象编程基础/gj_03_Python中初始化实例属性.py", line 57, in <module>
        print("姓名:"+xiaohong.name, "性别:"+xiaohong.gender, "出生日期:"+xiaohong.birth, "职业:"+xiaohong.job)
    AttributeError: 'Person' object has no attribute 'job'
    """
    
    #python的对象可以添加任意的成员,但是在其他对象上不会有,添加的成员仅限具体的对象,与类没有关系了。


    查看全部
  • class Person(object):

        pass


    p1 = Person()

    p1.name = 'Bart'


    p2 = Person()

    p2.name = 'Adam'


    p3 = Person()

    p3.name = 'Lisa'


    L1 = [p1, p2, p3]

    L2 = sorted(L1, key = lambda x: x.name)


    print L2[0].name

    print L2[1].name

    print L2[2].name

    # Python类的属性尽然可以在后期任意添加,真是动态语言的特点啊,在其他面向对象的编程语言里,好像是不敢想象的。

    查看全部
  • 迷糊,用到的时候再回来看
    查看全部
  • 默认参数也正代表一种情况,其他情况就代表不了了,但是偏函数可以根据用户需要,定义任意多个。

    查看全部
    0 采集 收起 来源:python中偏函数

    2019-07-25

  • 动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。

    查看全部
    0 采集 收起 来源:python中多态

    2019-07-24

  • a, b = b, a+b# 这种赋值,先计算等值 右边 那么 b=1 a+b=1# 再赋值给a和b,那么 a=1, b=1

    = b# 此时 b=1, 那么a=1= a+b# 那么 b=2


    查看全部
    0 采集 收起 来源:python中 __len__

    2019-07-24

  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数

    查看全部
  • 返回函数不要引用任何循环变量,或者后续会发生变化的变量。

    查看全部
    0 采集 收起 来源:python中闭包

    2019-07-24

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

    查看全部
  • 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count

    查看全部
  • 当实例属性和类属性重名时,实例属性优先级高,

    查看全部
  • iteritems()用于遍历字典kw

    setattr(object, name, value)

    相当于self.k=v

    查看全部
  • __init__() 方法的第一个参数必须是 self(也可以用别的名字,但建议使用习惯用法),后续参数则可以自由指定,和定义函数没有任何区别。

    相应地,创建实例时,就必须要提供除 self 以外的参数:

    xiaoming = Person('Xiao Ming', 'Male', '1991-1-1')
    xiaohong = Person('Xiao Hong', 'Female', '1992-2-2')


    查看全部
  •  super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。

    查看全部

举报

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

微信扫码,参与3人拼团

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

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