为了账号安全,请及时绑定邮箱和手机立即绑定
  • 如果一个类表现得像一个list,想使用len()函数来获取元素个数时,则需要实现__len__()方法。


    通过自定义__len__()方法,可以让len()函数返回相关的结果,如果没有定义__len__()方法的类使用len()函数获取长度时,将会引起异常。


    class Class:
       def __init__(self, students):
           self.students = students
       def __len__(self):
           return len(self.students)

    students = ['Alice', 'Bob', 'Candy']
    class_ = Class(students)
    len(class_) # ==> 3

    查看全部
  • 直接str(bob) # ==> '<__main__.Person object at 0x7fc77b859c50>'


    在类内部定义str后,可以打印任何我们想要的信息

    class Person(object):
       def __init__(self, name, gender):
           self.name = name
           self.gender = gender
       def __str__(self):
           return 'name: {}, gender: {}'.format(self.name, self.gender)

    bob = Person('Bob', 'Male')
    str(bob) # ==> 'name: Bob, gender: Male'


    终端输入bob # ==> '<__main__.Person object at 0x7fc77b859c50>'


    当使用str()时,实际调用的是__str__()方法,而直接输入变量,调用的是__repr__()方法。


    也在类中定义rep,终端直接输bob也可以打印任何我们想要的信息

    def __repr__(self):
           return 'name: {}, gender: {}'.format(self.name, self.gender)


    >>> bob
    'name: Bob, gender: Male'

    查看全部
  • def gcd(a, b):
       if b == 0:
           return a
       return gcd(b, a % b)


    求的是最大公约数,可以举个例子代入(2,4)就清楚了



    def __str__(self):
           g = gcd(self.p, self.q)
           return '{}/{}'.format(int(self.p/g), int(self.q/g))


    约分

    查看全部
  • f = Fib()

    print(f(10))



    __call__把对象当成一个函数来使用

    查看全部
  • https://img1.sycdn.imooc.com/65d4679a0001887112950822.jpg

    参考

    查看全部
  • 关于调用两种方法的时机

    • 使用print()时

    • 使用%s和f'{}'拼接对象时

    • 使用str(x)转换对象x时

    在上述三种场景中,会优先调用对象的__str__()方法;若没有,就调用__repr__()方法;若再没有,则显示其内存地址。

    特别地,对于下面两种场景:

    • 用%r进行字符串拼接时

    • 用repr(x)转换对象x时

    则会调用这个对象的__repr__()方法;若没有,则不再看其是否有__str__()方法,而是显示其内存地址。


    https://img1.sycdn.imooc.com/65d44bae00019e1309140698.jpg

    查看全部
  • class Animal():
            
    查看全部
  • **kw   可变参数

    查看全部
  • 在定义继承类的时候,有几点是需要注意的:

    1. class Student()定义的时候,需要在括号内写明继承的类Person
    2. 在__init__()方法,需要调用super(Student, self).__init__(name, gender),来初始化从父类继承过来的属性
    查看全部
    0 采集 收起 来源:Python继承类

    2023-12-12

  • open()函数:重要的三个参数

    1,文件路径:指定需要打开的文件路径

    2,打开模式:针对不同文件以及不同操作,会有不同的打开模式

    3,编码:设定打开文件的默认编码

    查看全部
  • __slots__方法:

    只允许类拥有某些属性,不允许外部再次添加属性,如果外部增添类属性,将会报错

    查看全部
    1. input()函数可以接收外部的输入。


    查看全部
  • 1、如果类属性和实例属性名字相同时,实例属性的优先级要高于类属性

    2、通过实例无法修改类的属性

    查看全部
    1. 如果希望导入模块的指定部分属性或函数,那么使用from...import...语句。

    2. 使用from ... import as ...语句,as类似重命名,可以把导入的函数或属性重命名为别的名字。

    查看全部
    0 采集 收起 来源:Python导入模块

    2023-11-29

    1. 如果把一个类实例也变成一个可调用对象,可以实现一个特殊的方法__call__()


    • >>> p = Person('Bob', 'Male')
      >>> p('Alice') # ==> 用函数的方式调用Person类的实例p

    查看全部

举报

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

微信扫码,参与3人拼团

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

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