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__)  # 只能看,不能改也不能删
    # 类的命名空间中有什么:
        # 静态属性
        # 动态属性(方法)

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

    # 如果静态变量是一个不可变数据类型,那么只要对象修改这个数据,就相当于在对象的空间中新建
    # 如果静态变量是一个可变数据类型,那么对象修改这个容器中的元素,相当于修改类的空间中的元素
    # 如果静态变量是一个可变数据类型,那么对象直接对这个变量重新赋值,相当于修改对象自己空间中的元素
    
    # 大结论
    # 只要是静态变量,就用类名去修改,永远修改成功,并且所有的对象都共享这个改变
    # 总结
    # 对象的命名空间:类指针对象的所有属性
    # 类的命名空间:方法和(静态属性字段)
    # 对象在寻找名字的时候 : 先找对象自己内存空间中的,找不到就去类的命名空间中寻找
    # 类中的名字是什么时候写入内存的 : 代码从上到下执行的时候就已经写入的.一定是在实例化之前
    # 静态变量 : 尽量用类名去操作
  • 相关阅读:
    HDU 1863 畅通工程(Kruskal)
    HDU 1879 继续畅通工程(Kruskra)
    HDU 1102 Constructing Roads(Kruskal)
    POJ 3150 Cellular Automaton(矩阵快速幂)
    POJ 3070 Fibonacci(矩阵快速幂)
    ZOJ 1648 Circuit Board(计算几何)
    ZOJ 3498 Javabeans
    ZOJ 3490 String Successor(模拟)
    Java实现 LeetCode 749 隔离病毒(DFS嵌套)
    Java实现 LeetCode 749 隔离病毒(DFS嵌套)
  • 原文地址:https://www.cnblogs.com/pythonz/p/9991301.html
Copyright © 2011-2022 走看看