python中关于命名的例子_Python()-类命名空间和对象/实例命名空间
类命名空间和对象/实例命名空间:
创建类, 就会创建一个类的名称空间, 空间:存储类的属性
属性:
静态属性:直接定义在类下面 & 和类名关联 的变量
对象属性:在类内和self关联 & 类外和对象关联 的变量
动态属性:方法(函数)
内存空间的指向:
class Foo:
a = 1
b = ['big']
def __init__(self):
pass
f1 = Foo()
print(f1.a) # 1
f1.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 100
f = 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 += 1
f = Foo()
print(f.count) #1 Foo.count
f2 = Foo()
print(f2.count) #2 Foo.count
f3 = Foo()
print(f3.count) #3 Foo.count
f = Foo()
f2 = Foo()
f3 = Foo()
print(f.count) # 3 Foo.count
print(f2.count) # 3 Foo.count
print(f3.count) # 3 Foo.count
===============================
题外:
class Foo:
count = 0
def __init__(self):
Foo.count += 1
def func(self):
a = 3
f = Foo()
print(Foo.func)
#
print(f.func) 两个内存地址是不一样的,(因为bound绑定到对象,有个类的指针指向类的方法,不是直接去拿)
#>
================
命名空间:
静态属性:属于类内部的命名空间
动态属性:属于类内部的命名空间
对象属性:属于对象的,在类内关联self ,类外关联对象名
查看静态属性: 类名.属性 对象.属性
调用类中的方法: 类名.方法名(传对象) ,对象.方法名()
对象能找到类,类找不到对象,单线联系
对象查找属性,现在自己空间找,找不到再去类空间去找
python中关于命名的例子_Python()-类命名空间和对象/实例命名空间相关推荐
- python中关于命名的例子_Python 命名规范入门实例
这篇文章主要为大家详细介绍了Python 命名规范入门实例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 一,包名.模 ...
- python中urframe函数的用法_python类中的内置函数
__init__(): __init__方法在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的初始化.注意,这个名称的开始和结尾都是双下划线. 代码例子: #!/usr/bin ...
- python中构造方法可以被继承吗_python – 类继承:构造函数应该兼容吗?多重继承的情况?...
是否建议它也适用于构造函数?我主要考虑Python及其__init __()方法,但这个问题适用于任何具有继承的面向对象语言. 我问这个问题,因为有一个子类从一个或多个类继承,提供一些不错的默认行为( ...
- python中property魔法方法原理_Python类中的魔法方法之 __slots__原理解析
在类中每次实例化一个对象都会生产一个字典来保存一个对象的所有的实例属性,这样非常的有用处,可以使我们任意的去设置新的属性. 每次实例化一个对象python都会分配一个固定大小内存的字典来保存属性,如果 ...
- python中关于命名的例子_利用Python批量重命名文件(给非技术人员的Python实例参考)...
Python是一门"优雅"的计算机语言,而且就算10岁的小朋友也能学会,我一直向我身边的同学朋友同事推荐,不管他会不会编程. 这一回我需要完成的任务是把"照片" ...
- python中静态变量和静态方法_python类和函数中使用静态变量的方法
本文实例讲述了python类和函数中使用静态变量的方法.分享给大家供大家参考.具体分析如下: 在python的类和函数(包括λ方法)中使用静态变量似乎是件不可能[Nothing is impossib ...
- python中顺序查找法例子_Python查找算法(一)------ 顺序查找
查找算法 -- 简介 查找(Searching)就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素. 查找表(Search Table):由用一类型的数据元素构成的集合 关健字( ...
- python中字典的常用函数_Python字典dict常用方法函数实例
dict={'name':'Joe','age':18,'height':60} clear,清空 dict.clear() #运行结果{} pop,移除指定key的键值对并返回vlaue(如果没有该 ...
- python四种占位符例子_python占位符输入方式实例
占位符,顾名思义就是插在输出里站位的符号.占位符是绝大部分编程语言都存在的语法, 而且大部分都是相通的, 它是一种非常常用的字符串格式化的方式. 1.常用占位符的含义 s : 获取传入对象的__str ...
最新文章
- linux学习笔记之--vim 程序编辑器
- Android adb远程调试
- Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上
- JAVA之private修饰成员方法默认是final型的?
- java与数据库连接的几个步骤
- 6.性能之巅 洞悉系统、企业与云计算 --- CPU
- 【Excel技巧必知必会】
- 位置式与增量式PID代码(C语言实现)
- 「算法学习」:求平方根
- bootstrap之栅格化
- Ubuntu18.04调整屏幕分辨率至1920*1080
- ug java环境变量设置_关于UG环境变量
- 深入浅出零知识证明(二):zkSNARKs基本原理
- Android框架之路——Banner实现轮播图(RecyclerView添加Header)
- opencv h264压缩视频
- 【区块链论文整理】VLDB篇
- Matlab弹簧质量阻尼系统建模仿真
- icpc2018南京站B题 tournament
- 基于python和selenium爬取JD商城商品信息并且分析用户对于产品的满意程度
- UE4 解决Ribbon连线异常