python面对对象
2021-03-23 10:27
标签:super 内存地址 print 对象 str set orm height doc 主要的概念有: 类: 属性:就是变量,属性是在__init__的方法里,以参数的形式定义 方法:函数,行为 class Student(object);##类 ##这个属性直接定义在类里,是一个元组,用来规定对象可以存在的属性 __slots__(‘name’,‘age‘,‘height‘) def __init___(self,name,age,height) ##属性 self.name=name self.age=age self.height=height def run(self) ##方法 print("paobu") s1=Student("小明",23,150) ##对象 s1.run() 或者 class Student: pass s1=Student("小明",23,150)创建一个类的过程 1、__new__方法用来申请一段内存空间; 2、调用__init__方法传入参数,并让self指向申请好的内存空间 3、s1变量也指向创建好的内存空间 魔术方法 特点:1、以__开始,以__结束 2、不需要自己调用,会在合适的时间自己调用 3、方法名系统已经定义好了,会在合适的时间进行调用 举例 __init__:创建对象时会自动调用 __del__:对象被销毁的时候自动建立 当打印一个对象的时候,会默认返回对象类型和内存地址。 __str__或者__repr__:当打印的时候会自动掉这两个方法,如果二者都选,则__str__优先 __dirct__:把对象的属性转换成字典 __doc__:类的说明""" """ __module__:默认打印的是___main__ __set_item__:调用[]的时候会自动调用 对象():s1()是调用__call__方法 ==:会调用__eq__方法 args:是一个元组 **kwargs:是一个字典 dir把对象的所有属性及方法都列出来 类属性:模板的属性,定义在类里,但是在函数之外 对象属性:实例的属性 私有属性:以两个__线开始self.__money=1000,私有变量的获取方式1、 对象._类名__money 2、在类的定义的函数中,用self.__money @staticmethod:当一个类中的函数没有用到self,则可以通过这个定义为静态类,此时()中就不用写入self 封装:函数是对语句的封装,类是对函数和变量的封装 继承:类和类之间可以手动的建立父子关系,父类的属性和方法,子类均可使用,父类又称为基类,子类又称为派生类,python中允许多继承。当同子类和父类的方法差别较大时,子类可以重写方法,子类优先。子类在父类的基础上可以有更多的属性,调用方法为super(person 类名,self).__init(age,name) calss Animal(object): pass class Student(Animal): pass #这样Student就继承了Animal. 多态:多态是一种技巧,提高代码的灵活性 print("args={},kwargs={}".format(args,kwargs)) is:获取两个对象的内存地址 isinstant:用来判断一个对象是否由指定的类或父类例化出来 python面对对象 标签:super 内存地址 print 对象 str set orm height doc 原文地址:https://www.cnblogs.com/aslmer/p/13844064.html