博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类命名空间和对象/实例命名空间
阅读量:4552 次
发布时间:2019-06-08

本文共 1529 字,大约阅读时间需要 5 分钟。

类命名空间和对象/实例命名空间:

创建类, 就会创建一个类的名称空间, 空间:存储类的属性

属性:

  • 静态属性:直接定义在类下面 & 和类名关联 的变量
  • 对象属性:在类内和self关联 & 类外和对象关联 的变量
  • 动态属性:方法(函数)

内存空间的指向:

class Foo:  a = 1  b = ['big']  def __init__(self):    passf1 = Foo()print(f1.a) # 1f1.a = 2             # '=' 断开了类的指针,内存地址不在指向类中的a (从内存层面讲) , 指向了新开辟的空间                # 对象修改类的不可变数据类型,,只是赋值在对象自己的空间里增加一个新属性print(f1.a) # 2 print(f1.b) # ['big']f1.b.append('small')     #没有断开,只是指向的列表append()                                # 对象修改可变数据类型,全局生效print(f1.b) # ['big', 'small']

========

class Foo:  def func(self):    return 100f = Foo()print(f.func())f.func = 1         #修改成1, 对象自己创建了一个变量名是func = 1 的东西print(f.func)         #f.func 没有括号,是对象调用属性print(Foo.func(f))         #如果还想用 100, 可以用类名.方法,self参数必须传进去一个对象

 

================

例子:统计类被调用的次数

class Foo:  count = 0  def __init__(self):    Foo.count += 1f = Foo()print(f.count) #1 Foo.countf2 = Foo()print(f2.count) #2 Foo.countf3 = Foo()print(f3.count) #3 Foo.count f = Foo()f2 = Foo()f3 = Foo()print(f.count) # 3 Foo.countprint(f2.count) # 3 Foo.countprint(f3.count) # 3 Foo.count

===============================

题外:

class Foo:  count = 0  def __init__(self):    Foo.count += 1  def func(self):    a = 3f = Foo()print(Foo.func)#
print(f.func) 两个内存地址是不一样的,(因为bound绑定到对象,有个类的指针指向类的方法,不是直接去拿)#
>

================

命名空间:

  • 静态属性: 属于类内部的命名空间
  • 动态属性: 属于类内部的命名空间
  • 对象属性: 属于对象的,在类内关联self ,类外关联对象名

查看静态属性: 类名.属性 对象.属性

调用类中的方法: 类名.方法名(传对象) ,对象.方法名()
对象能找到类,类找不到对象,单线联系
对象查找属性,现在自己空间找,找不到再去类空间去找

 

转载于:https://www.cnblogs.com/jin-yuana/p/10025753.html

你可能感兴趣的文章
sublime Text3 快捷键
查看>>
19 年书单
查看>>
规范 : Sql statusEnum
查看>>
jQuery的.live()和.die() 使用介绍
查看>>
mybatis
查看>>
Chord算法(原理)
查看>>
cocos2d-html5
查看>>
不变模式
查看>>
RabbitMQ安装与搭建
查看>>
【转】UITextView检查已输入字符字数
查看>>
延迟初始化
查看>>
字符串格式化和format
查看>>
页面内容添加新的显示或者显示隐藏的内容,滚动条滚动到最低端,显示出新内容...
查看>>
【poj1182】 食物链
查看>>
Oracle学习之start with...connect by子句的用法
查看>>
matlab去云雾
查看>>
500lines项目简介
查看>>
Asp.net core logging 日志
查看>>
BOM浏览器对象模型
查看>>
Ajax的封装
查看>>