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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • getattr(s, 'name')  # 获取name属性'Bob'

    >>> setattr(s, 'name', 'Adam')  # 设置新的name属性



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

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

    2018-04-03

  • Python内置的 sorted()函数可对list进行排序:

    >>>sorted([36, 5, 12, 9, 21])
    [5, 9, 12, 21, 36]

    但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。

    因此,如果我们要实现倒序排序,只需要编写一个reversed_cmp函数:

    def reversed_cmp(x, y):
        if x > y:
            return -1
        if x < y:
            return 1
        return 0

    这样,调用 sorted() 并传入 reversed_cmp 就可以实现倒序排序:

    >>> sorted([36, 5, 12, 9, 21], reversed_cmp)
    [36, 21, 12, 9, 5]

    sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较:

    >>> sorted(['bob', 'about', 'Zoo', 'Credit'])
    ['Credit', 'Zoo', 'about', 'bob']

    'Zoo'排在'about'之前是因为'Z'的ASCII码比'a'小。


    查看全部
  • 可见,千万不要在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。
    查看全部
  • python中定义类方法

    和属性类似,方法也分为实例方法和类方法

    我们通常看到的在class中定义的全部都是实例方法,实例方法第一个参数self是实例本身

    class中定义类方法,需要用到关键词   @classmethod   与实例方法进行区分

    例如:

    class Person(object):

        count=0

        @classmethod

         def how_many(cls):

              return cls.count

         def _init_(self,name):

              self.name=name

              Person.count=Person.count+1

    print Person.how_many()

    p1=Person('xiao hong')

    print Person.how_many()

    通过关键字@classmethod将 how_many()方法绑定到类Person上,而非类的实例上,类方法的第一个参数cls传入类本身Person,代码中的cls.count  就相当于 Person.count  

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

    查看全部
  • Python中方法也是属性

    方法也是一个属性,所以它可以动态地添加到实例上,需要用到 types.MethodType( )把函数变成一个方法,使用该方法时需要在代码头先导入模块  import types

    给一个实例动态地添加方法并不常见,直接在类中定义方法更为直观

    查看全部
  • https://img1.sycdn.imooc.com//5ac351b40001f45c10570713.jpg

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

    2018-04-03

  • python中定义实例方法

    实例的私有属性是以双下划线开头   __   ,私有属性无法被外部访问

    私有属性的作用,他不能被外部访问可以在内部访问,在类中可以定义属性也可以定义方法,类内部定义的方法可以访问类中的属性;

    实例的方法就是在类中定义函数,他的第一个参数是 self ,指向调用该方法的实例本身,其他的参数和函数中的方法一样;

    class  Person(object):

        def _init_(self,name):

             self.__name=name

       def get_name(self):

            return self.__name

    p1=Person('xiao hong')   

    print p1.get_name()    

     #self参数在调用时不需要显式传入

    ##调用实例的方法必须在实例上调用,会输出 xiao hong

    get_name()就是实例方法,_init_()也可以看成是一个特殊的实例的方法

    实例方法可以访问类中的私有属性,外部如果要访问类的私有属性,可以通过实例方法调用来间接访问;

    这种数据封装的方式,保护了内部属性的一致性,也简化了外部调用的难度


    查看全部
  • capitalize() 首字母大写,其余全部小写

    upper() 全转换成大写

    lower() 全转换成小写

    查看全部
  • abs是内置函数,所以不要加math,而sqrt是math包函数,因此需要加math

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

    查看全部
  • 包目录下都有_init_.py文件,必须有此文件

    查看全部
  • https://img1.sycdn.imooc.com//5ac3182a0001662408130635.jpg

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

    2018-04-03

  • __count属性是不能被外部访问的

    查看全部
  • Python中类属性和实例属性名字相互冲突时怎么办?

    冲突时对实例的数次属性进行重写

    当实例的属性和类属性重名时,实例的属性优先级更高

    即是:当通过  实例名.属性名  访问属性时,优先查找实例的属性,若实例本身没有定义属性,则返回类属性的值,若实例本身定义了属性,则访问实例的属性值

    例如:

    class Person(object):

        adress='earth'

        def _init_(self,name):

            self.name=name

    p1=Person('xiao hong')

    p2=Person('xiao ming')

    p1.address='chain'   

    print p1.address    #会输出chain

    print p2.address   #会输出 earth

    print Person.address   #会输出 earth


    查看全部

举报

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

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