为了账号安全,请及时绑定邮箱和手机立即绑定
  • 对于实例变量,dir()返回所有实例属性,包括__class__这类有特殊意义的属性,返回的数星星是字符串列表,

    查看全部
  • 类名以大写字母开头

    python2中:

    查看全部
  • 有必要注意的是,返回函数和返回函数值的语句是非常类似的,返回函数时,不能带小括号,而返回函数值时,则需要带上小括号以调用函数。

    # 返回函数
    def myabs():
       return abs

    # 返回函数值
    def myabs(x):
       return abs(x)

    查看全部
    0 采集 收起 来源:Python返回函数

    2024-02-21

  • 如果要限制添加的属性,例如,Student类只允许添加 name、gender和score 这3个属性,就可以利用Python的一个特殊的__slots__来实现。


    class Student(object):
       __slots__ = ('name', 'gender', 'score')
       def __init__(self, name, gender, score):
           self.name = name
           self.gender = gender
           self.score = score


    使用__slots__ = ('name', 'gender', 'score') 限定Student类的属性,这个时候在外部再次添加动态属性age,将会报错。



    >>> student = Student('Bob', 'Male', 99)
    >>> student.age = 12 # ==> 动态添加年龄age属性
    Traceback (most recent call last):
    AttributeError: 'Student' object has no attribute 'age'

    查看全部
  • 如果一个类表现得像一个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

    查看全部
  • **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()函数可以接收外部的输入。


    查看全部

举报

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

微信扫码,参与3人拼团

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

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