python面对对象

2021-03-23 10:27

阅读:581

标签: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


评论


亲,登录后才可以留言!