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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 斐波那契数列是由 0, 1, 1, 2, 3, 5, 8...构成。

    请编写一个Fib类,Fib(10)表示数列的前10个元素,print Fib(10) 可以打印出数列的前 10 个元素,len(Fib(10))可以正确返回数列的个数10。

    列表切片,作用于列表的海曙,除了fitter,还有map

    def f (self.num):

        i = i +1

        x = 0

        y = 1

        x = x + y

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

    2019-01-24

  • 特殊方法典型运用:获取类中有几个元素,只是元素而不是实例的个数。

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

    2019-01-24

  • #思考,如果list中不仅仅包含类,则__cmp__可能会报错,可以用try excpet吗?或者用if else isinstance()

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

    2019-01-24

  • 怎么调用方法?


    def __cmp(self,s):

        if self.name < s.name:

            return -1

        elif self.name > s.name:

            return 1

       else:

            return 0


    疑问:是将字符串转化为ACSII码进行比较?还不考虑大小写吗?如果是均是大写,那么是A~Z排序。

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

    2019-01-24

  • 特殊方法的典型运用:类的实例进行排序。

    对 int、str 等内置数据类型排序时,Python的 sorted() 按照默认的比较函数 cmp 排序,但是,如果对一组 Student 类的实例排序时,就必须提供我们自己的特殊方法 __cmp__():

    diao

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

    2019-01-24

  • #同学回答:

    __str__()用于显示给用户,而__repr__()用于显示给开发人员。

    如果在交互式命令行下 直接敲变量 s 就会返回<main.Person object at XXX> 这样的东西

    如果你配置了__repr__ = __str__

    你交互式命令行下打print s 和 直接敲变量 s 的返回值是一样的 都是(Student: Bob,male,88)


    查看全部
  • #同学回答,为什么用%s 与 %d 均可:

    %s:表格式化为字符串

    %d:表格式化为整数,88为整数所以可以用%d,

    但是

    (Student: %s, %s, %d )

    外面是加了引号的,不论你用%s还是%d,最终都是字符串形式,而__str__本身就该返回字符串,因此不会出错


    查看全部
  • ,如果直接敲变量 p:

    >>> p
    <main.Person object at 0x10c941890>

    似乎__str__() 不会被调用。

    因为 Python 定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。

    什么意思?

    查看全部
  • return '(Person,%s,%s)' %(self.name,self.gender)

    用到的是元组,是利用元组的不可变性,还是只是作为打印语句的要求?

    查看全部
  • 特殊方法的典型运用:如果要把一个类的实例变成 str,就需要实现特殊方法__str__()

    查看全部
  • 正确实现特殊方法:
        只需要编写用到的特殊方法

        有关联性分特殊方法都必须实现

            __getattr__

            __setattr__

            __delattr__

    查看全部
  • 除了可以直接使用<strong>self.name = 'xxx'</strong>设置一个属性外,还可以通过 <strong>setattr(self, 'name', 'xxx')</strong> 设置属性。
    查看全部
  • 定义关键字参数使用:**kw

    for k, v in kw.iteritems():
                setattr(self, k, v)


    查看全部
  • 我们还可以根据自己的想法修改__str__()这个方法,使得print p,时直接打印出这个特殊方法。

    查看全部
  • #自己思考

    Person类并没有定义__str__(),为什么能调用__str__()?

    其实dir()中有很多属性,我们都没有定义,比如__doc__,但是仍可以调用,是自带的吧,你创建一个类时,本身也要有地址去存放这些类,就算是'Person',这个字符串也存在地址存放才对。

    查看全部

举报

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

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