-
Python特殊方法
查看全部 -
对于Person类的定义:
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender希望除了name和gender外,可以提供任意额外的关键字参数,并绑定到实例,请修改 Person 的__init__()定义,完成该功能。
查看全部 -
已知类Student、Teacher继承Person类,技能类BasketballMixin、FootballMixin继承SkillMixin类,请通过多重继承,分别定义“会打篮球的学生”和“会踢足球的老师”。
查看全部 -
Python继承类
查看全部 -
Python的魔方方法解读笔记(以下全都看不懂):
__new__: 对象实例化时候调用的第一个方法,可以调用其他类的构造方法
__init__: 构造器,当一个实例被创建时调用的初始化方法
__del__: 析构器,当一个实例被销毁时调用的方法
__str__: 同__repr__功能类似,前者面向用户,后者面向程序员
__repr__: 当程序员直接打印该对象时,系统将会输出该对象的“自我描述”信息,用来告诉外界该对象具有的状态信息,当使用str()时,实际调用的是__str__()方法,而直接输入变量,调用的是__repr__()方法。
__bytes__: 调用会触发必须返回一个byte的操作
__format__: 字符串格式化
__lt__: 小于
__le__: 小于等于
__ne__: 不等于
__gt__: 大于
__ge__: 大于等于
__eq__: 是否等于,可以将内存地址不同的两个对象强制变为同一个对象
__hash__: 在使用内置函数hash()、hash类型集合对自身成员的hash操作两种场景中触发使用
__bool__: 对传递对象或值参数进行标准真值检测
__dir__: 列出对象内部所有属性名和方法名,返回相应的值序列,把对象转换为字符串进行输出,或输出对象的内存地址
__set__: 为私有属性赋值
__call__: 允许一个类的实例像函数一样被调用。
__slots__: 限定属性是否可以动态添加
查看全部 -
xiaoming = Person('Xiao Ming', 'boy', 13) xiaohong = Person('Xiao Hong', 'girl', 14)查看全部
-
class Person(object): def __init__(self, name, sex, age): self.name = name self.sex = sex self.age = age查看全部
-
面向对象编程
类 属性 实例
查看全部 -
在定义继承类的时候,有几点是需要注意的:
class Student()定义的时候,需要在括号内写明继承的类Person
在__init__()方法,需要调用super(Student, self).__init__(name, gender),来初始化从父类继承过来的属性
查看全部 -
和实例方法不同的是,这里有两点需要特别注意:
类方法需要使用@classmethod来标记为类方法,否则定义的还是实例方法
类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.__localtion 实际上相当于Animal.__localtion。
因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
查看全部 -
在类属性和实例属性同时存在的情况下,实例属性的优先级是要高于类属性的,在操作实例的时候,优先是操作实例的属性。
另外,当实例没有和类同名的时候,通过实例对象,依然可以访问到类属性。查看全部 -
def后面传递参数是需要双下划线,即要打两次短划线
查看全部 -
装饰函数一般在函数内部会调用传入的函数,并且可能在其前后增加一些操作,最后返回一个在修饰函数中定义的新函数
查看全部 -
1、显式地捕获 i 的值(例如,传入参数)能够记录下来i当时的值
2、闭包中f 函数定义时循环内会捕获 i 的引用,而不是 i 的值
查看全部 -
lambda匿名函数比较好用,例如lambda s: s.capitalize() lambda 后面跟的都是对这个函数的定义,:前的s是传入参数,:后的是返回值
查看全部
举报