• 潭州课堂25班:Ph201805201 第十课 类的定义,属性和方法 (课堂笔记)



    类的定义
        
        共同属性,特征,方法者,可分为一类,并以名命之

      class Abc: # class 定义类, 后面接类名 ( 规则 首字母大写 )
       cls_name = '这个类的名字是Abc' # 在类里定义的变量 是 属性

      print( Abc.cls_name )
      Abc.binbin = '正在25班教室' # 可以通过 类名.属性名 = 属性值 给类添加属性
      print( Abc.binbin )
      ------》》》》》
        这个类的名字是Abc
        正在25班教室

      类是一个独立存放 变量(属性),方法 的定单
        其中:
    Abc.cls_name 在定义类时已经封装好的属性,
             Abc.binbin = '正在25班教室'   在定义类后,进行属性的添加,封装
      

      类的实例化,
      obj = Abc()       obj 是 Abc() 实例化 后得到的 实例   本质就是 return 
      print( obj.cls_name )
      print( obj.binbin )
      
      类 与 实例 的关系: 其是一类事物的抽象,不是真实存在的,描绘了该的共性,
      比如:‘人’,‘动物’,‘家具’,某类事物的具体个休,
      是该类事物的具体表现,是真实存在的。
      
      实例也是一个独立存放 变量(属性),方法 的定单
      不同实例间的问个空间不相通,当调用中的属性在实例中找不到时,会去类中寻找,找不到则报错,
      基于类而创建的一个具体的事物,是具体存在的,


      类的方法
        class Abc:
         def ee(self): # 在类里,函数 叫 方法
         print(self) # self 是实例本身

        obj = Abc() # 实例在调用 方法 时,自动传入 self 参数
        obj.ee()

        实例.方法(参数) ---》》 类.方法(实例,参数)
          参数
    self 将会自动传入, 通常谁调用,就指的是谁,

      私有属性,方法

        class Abc:
         _x = 2          # 私有的定义,
         __y = '不能说的秘密'   # 私有的定义,

        obj = Abc()
        print(obj._x)
        print(obj._Abc__y)

        在类中,可以定义私有属性,方法:
        _名称()  -----》》 该受保护的属性,方法可以直接调用,原则上不能修改
        __名称()  -----》》 不能直接调用, 可以用 类名(或实例名)._类名__属性名(或方法名)

      初始化 和 删除实例
      class Abc:
       def __init__( self,name ): # 类的固定方法,会在不同情况下自动调用,
       self.name = name
           ..... ....       返回 sself 的数据属性,{}形式
       print('初始化 ')

       def __del__(self):      # 定义了 删除 方法
       print('正在删除实例')

      obj = Abc('花痴') # 实例化时 自动调用 __init__
      print(obj.name)
      del obj          # 删除 实例



    增删改查的操作:
    class CHinse:
        coontry = 'CHinse'
        def __init__(self,name):
            self.name = name
        def ply_ball(self,ball):
            print( '%s正在打%s'%(self,name) )
    
    # 查 print(CHinse.coontry) # ---》》CHinse
    # 改 CHinse.coontry = 'japan' print(CHinse.coontry) # ---——》》japan p1 = CHinse('花痴') print(p1.coontry)      # ————》》黄色
    # 增 CHinse.fu_se = '黄色' print(CHinse.fu_se)   # ————》》增加 print(p1.fu_se) # why? :创建的是 实例,改的是类,通过 实例 引用的 类
    # 删除 print(CHinse.__dict__) del CHinse.fu_se del CHinse.coontry print(CHinse.__dict__)

    # 下面方法的操作,
    # 增 def eat_food(self,food): print('%s正在吃%s'%( self.name, food )) CHinse.eat = eat_food p1.eat('饭')          # ————》》 花痴正在吃饭

    # 改 def abc(self): print('abc') CHinse.ply_ball = abc p1.ply_ball()        # ---->>> abc
  • 相关阅读:
    (转)java反射机制及简单工厂模式
    (转)JAVA反射机制理解
    (转)前缀、中缀、后缀表达式
    (转)java提高篇(四)-----理解java的三大特性之多态
    (转)java for循环的执行顺序和几种常用写法
    (转)JAVA堆栈操作
    POI 实现合并单元格以及列自适应宽度
    前端缓存支持的文件格式及请求方式
    freemarker在xml文件中遍历list数据
    freemarker在线编辑
  • 原文地址:https://www.cnblogs.com/gdwz922/p/9171245.html
Copyright © 2020-2023  润新知