zoukankan      html  css  js  c++  java
  • day27 Pyhton 面向对象02 类和对象的命名空间

    一.内容回顾

      类:具有相同属性和方法的一类事务

      # 描述一类事务轮廓的一个机制

        #商品/用户/店铺

      对象/实例: 对象(实例)就是类的实例化

        # 对象就是类的一个具体的表现

          #某一件特定的商品/某个人/某一家店

      实例化 : 类 --> 对象

      实例化的过程:

        #1.创建一个属于对象的空间

        #2.执行__init__,把这个空间传递给init的第一个参数

        #3.把这个空间地址作为返回值返回给对象变量

      #如何定义一个类

      #class Cls:pass

      #在类中直接可以定义的内容:

        #静态属性 : 这个类拥有的,所有的对象都共享的属性

        #动态属性: 方法定义在类中的函数,描述的是所有对象共享的行为

      #类名的作用

        #实例化的时候  对象 = 类名()

        # 操作静态属性

      #对象名的作用:

        #操作对象的属性

        #调用方法

    二.今日内容

      #类的命名空间

        #类的代码的执行顺序

        #静态属性的意义,和他所在的位置

        #动态属性所存储的位置

      #对象的命名空间

        #如何建立起和类之间的关系

        #对象的属性是如何存储的

      #组合

        #常用的技能

    # class A:
    #     Country = 'China'
    #     def talk(self):
    #         print('%s is talking'%self.name)
    # alex = A()


    # 一个类可不可以没有__init__? 可以 # 在没有__init__的情况下,实例化经历了哪些步骤??? # 1.创建一个空间给对象 # 2.将这个空间的地址返回 # alex.name = 'alex' # alex.talk()
    # class A:
    #     Country = 'China'
    #     def __init__(self,name):
    #         self.name = name
    #     def talk(self):
    #         print('%s is talking'%self.name)
    # 类中的代码是在什么时候执行的? 在实例化之前
    # 新增静态属性
    # A.静态属性名 = 'abc'
    # print(A.静态属性名)
    # 修改静态属性
    # A.Country = '印度'
    # print(A.Country)
    # 删除静态属性
    # del A.Country
    # print(A.Country)   # 报错
    # print(A.__dict__)  # 只能看,不能改也不能删
    # 类的命名空间中有什么:
        # 静态属性
        # 动态属性(方法)

    #
    对象的命名空间和类的命名空间之间的关系 : # 对象和类之间有一个单向的联系,类对象指针 # 对象在使用某个名字的时候,如果在自己的空间中没有找到,就要到类的空间中去找

    # 如果静态变量是一个不可变数据类型,那么只要对象修改这个数据,就相当于在对象的空间中新建
    # 如果静态变量是一个可变数据类型,那么对象修改这个容器中的元素,相当于修改类的空间中的元素
    # 如果静态变量是一个可变数据类型,那么对象直接对这个变量重新赋值,相当于修改对象自己空间中的元素
    
    # 大结论
    # 只要是静态变量,就用类名去修改,永远修改成功,并且所有的对象都共享这个改变
    # 总结
    # 对象的命名空间:类指针对象的所有属性
    # 类的命名空间:方法和(静态属性字段)
    # 对象在寻找名字的时候 : 先找对象自己内存空间中的,找不到就去类的命名空间中寻找
    # 类中的名字是什么时候写入内存的 : 代码从上到下执行的时候就已经写入的.一定是在实例化之前
    # 静态变量 : 尽量用类名去操作
  • 相关阅读:
    细数ASP.NET MVC框架的7大顶级功能
    Ubuntu 10.10更新源列表
    使用iTunes将任意mp3文件转为iPhone铃声
    简单5步,在新浪微博上关联多个博客
    在windows 7 建立一个弹出光驱的快捷方式
    中国人民太伟大了!
    Ubuntu 10.10
    du 熊填数字
    WPF学习02——XAML编译
    Debugging WPF data bindings
  • 原文地址:https://www.cnblogs.com/pythonz/p/9991301.html
Copyright © 2011-2022 走看看