python类和对象

类:
  类是类别,是具有相同属性和方法的一组对象的集合,类是对象的抽象。
  对象是类里具体的事物,用来描述客观事物的一个实体,由一组属性和方法构成,万物皆对象,
             是为谁设定的,对象是数据和操作的封装,对象是独立的,但是对象之间可以互为作用。
   属性:特征                          方法: 行为
             数据                                    动作
             变量                                    操作
             存储                                   要做的事
                                                       函数  (类中的函数都是方法)
                                                       
定义一个类:class 类名首字母大写
      class per:   (object)默认自动
           def abc(self)         ————(默认self,自动生成)方法
           tab=per()              ————创建对象,对象名等于类名,(括号默认调用了类中的构造 方法和初始化方法)
           tab.abc()               ————调用类的方法
    
    创建对象默认继承类的(object )属性,方法等   对象可以直接调用类中方法
    对象可以直接创建属性,属于对象属性,不是类的属性,只能对象本身使用,不具有通用性,
             可以写在方法里,其他对象调用也属于此对象属性。
    self 指当前对象,方法里写入self属性,任何对象调用属性都可以使用,具有通用性,属于公共属性 
  
    
    __init__:初始化方法  (属于重写默认初始化方法)
         def __init__(self,xx,xx,xx):  xx——方法的参数 (参数写默认值情况下,对象可以不用传参)
               self.xx=xx ——把方法参数作为公开属性 (对象可以通用)
          创建类对象时 ,要给初始化属性传值,在对象调用方法时传属性值,对象.方法名(属性值)
    __str__ :(默认调用对象时,产生str方法,使用对象属性,输出属性值)   默认:对象.方法(str)
         输出对象属性,把属性值转为字符串输出,属性值为空默认输出对象地址(也属于重写了默认str的方法)
          使用__str__方法: 
          用return 后面写字符串加上属性,输出对象的属性值 
          
 封装: 隐藏了内部结构,直接用来调用,     
 私有属性:把属性前面写__变成私有的属性,不能在外部用对象直接访问或更改属性,
        可以定义一个单独的方法,在内部方法里访问和更改私有属性,输出只能调用方法,不能直接调用属性,
        还可以定义set_ get_两个方法:
       
              set_赋值——(可以写其他,最好写固定,大家都认识)
                    定义set_方法(参数,必须有)
                          self__属性变成私有属性
               get_取值   
                     定义get_方法(默认self属性)
                           return  self 加私有属性取值
        用对象加set_方法名传参(添加参数赋值,赋值必须有参数)
        用对象加get_方法名取值  输出取值(没有参数)
        私有方法:在外部对象不可以直接调用
  自动销毁方法:
      __del__ () :
          当实例对象释放后或没有引用的时候,或程序结束的时候,程序自动调用__del__方法执行销毁,
          如关闭一些数据,会一项项回收内存也可以手动调用
          删除实例属性:del.对象名.属性 即可删除
  类方法  :
        @classmethod
        def xxxx(cls):  ————类方法(参数)
        参数赋值类属性要加cls.——和对象self 用法一样
        类名可以调用类方法  ——类名.方法名()
        类方法只能访问类变量,不能访问实例变量,
       
        定义类时会定义一个类空间,包括所有类成员:调用多次类方法也使用同一个空间
        类属性(变量):大家公用的属性,作用: 节省内存空间,哪个实例需要哪个实例就可以调用,
        类属性的初始值如果在方法里被改变,那么类属性的初始值也会跟着改变
        当类属性(变量)和实例属性(变量)重名时,先找实例属性,没有在用类属性
属性方法:@property
        把一个方法变成一个静态属性 (变量)———实例调用方法时不加()---实例.方法名
        无法给属性传参,如果想给属性赋值传值,需要在写一个相同名字的方法 用法@方法名.setter ,直接给属性赋值传值
        如果想删除属性,用法@方法名.deleter ,在写一个相同名称的方法 del 删除属性
        实际应用:当需要把方法内不同的状态输出时,可以转成属性值输出
 对象方法:
        对象可以直接调用类方法,多个对象调用相同的类方法也使用同一个类空间
        类名不可以直接调用对象方法()必须创建一个对象来调用对象方法
        创建对象时会默认创建一个空间,每一个对象都有自己的空间,包含所有对象成员 ,不同对象的属性输出在各自的空间
        对象成员——对象属性,对象方法(self)
  静态方法: 
        @staticmethod 
          def xxx():   就是一个函数(如果传了形参,调用方法时也必须传入参数)
         不属于类方法 也不属于对象方法,(跟类和对象无关的时候可以用静态方法)
          静态方法中实际不可以使用任何类或实例的方法,属性  cls.,self.
          但是可以用类调用静态方法,也可以用对象调用静态方法  
    构造方法:
          __new__:
         def __new__(cls,*关键字参数**动态参数,)默认类方法 ,参数必须和初始值参数一致 
              ( __new__创建对象空间,__init__生成对象的初始值——先输出__new__创建空间,在输出__init__给对象赋值)
          用来创建对象 ,默认在生成对象之前调用,必须有返回值return
           return object.__new__(cls)  ---(固定格式返回属性参数)
   单例模式:
         类里只能生成一个对象,创建多个对象会用同一个地址,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值