zoukankan      html  css  js  c++  java
  • Python面向对象OOP(二)

    面向对象中的成员和组合

    class Foo:
    
        # 类变量(静态字段)
        age = 233
    
        def __init__(self, name):
            # 实例变量
            self.name = name
        
        def func(self):
            pass
    
    # 不同的对象,有不同的存储空间,保存着自己的属性(字段)
    obj1 = Foo("Canaan")
    obj2 = Foo("Jianjian")
    print(obj1.age, obj1.name)  # 静态字段也可以通过对象访问,如果本身没有,就回去类里面找
    print(obj2.age, obj2.name)
    
    print(Foo.age)  # 静态字段也可以通过类名去直接访问
    Foo.age = 2333  # 静态字段要通过类名去修改
    print(Foo.age)  
    
    print(obj1.age, obj1.name)
    print(obj2.age, obj2.name)
    
    obj1.age = 123  # 静态字段可以通过对象修改,每个对象之间互不影响,修改之后对类中的类变量也不影响
    print(obj1.age, obj1.name)
    print(obj2.age, obj2.name)
    
    
    # 对于实例变量(字段)访问时,只能通过对象访问,即obj.name
    # 对于类变量(静态字段),访问时,通过类名去访问,不方便时再使用对象去访问
    print(obj1.name)
    print(Foo.age)
    
    # 对象对于实例变量(字段)的修改,属性修改互不影响
    # 对象对于类变量(静态字段)的修改,对象之间也互不影响,也不影响类中的静态字段,只是相当于在自己的存储空间内封装了一条新的属性
    # 以后对于这个字段的使用,每个对象都先访问自己的存储空间,有就用自己的,没有再去用类中的
    obj1.age = 123
    Foo.age = 2333

    使用情况:

    如果对象中有一些相同的值,同时修改同时删除,就可以提取为类变量

    私有变量和共有变量

  • 相关阅读:
    AUSU 安装Win10注意事项
    华硕笔记本无法设置U盘启动,快捷启动不能识别
    postgres 得到所有表空间 和 表空间的位置
    python 远程链接、搜索与下载
    python 读取 postgreSQL 数据保存CSV文件
    weka 初练之 文本分类
    基于springMVC+mybatis的实践记录
    简单的springMVC + mybatis 编写程序流程
    sql查询 生成列号
    通过资源文件 验证拦截机制
  • 原文地址:https://www.cnblogs.com/canaan233/p/13750181.html
Copyright © 2011-2022 走看看