python_94_类变量实例变量
class Role:
n=123#类变量
name='我是类name'
list=[]
def __init__(self,name,role,weapon,life_value=100,money=15000):
'构造函数:实例化时做一些类的初始化工作'
self.name=name#实例变量(静态属性),作用域就是实例本身
self.role=role
self.weapon=weapon
self.life_value=life_value
self.money=money
def shot(self):# 类的方法,功能 (动态属性)
print("shooting...")
def got_shot(self):
print("ah...,I got shot...")
def buy_gun(self,gun_name):
print("%s just bought %s"%(self.name,gun_name))
print(Role,Role.n)
r1= Role('Alex','police','AK47') #生成一个角色,为Role(类)的一个实例
r2= Role('Jack','terrorist','B22')#Role(r2,'Jack','terrorist','B22')把一个类变成一个具体对象的过程叫 实例化(初始化一个类,造了一个对象)
print(r2.n,r2.name)#打印的name是实例化的name,不是类name(规律:变量先去实例中找,找不到再去类中找)
r2.n='改变类变量'#在r2实例中增加了个实例变量n,类变量其实没改变,所以r1.n还是123
print(r2.n,Role.n,r1.n)
Role.n='ABC'
print(r2.n,Role.n,r1.n)#r2.n不变,取的是自身的实例变量n
r2.name='王大屯'
r2.fangdanyi=True
print(r2.name,r2.fangdanyi)
r2.buy_gun('机关枪')
print(r2.weapon)
del r2.weapon
#print(r2.weapon)删掉后打印不出来
r1.list.append('from r1')
print(r1.list)
r2.list.append('from r2')
print(r2.list)
print(Role.list)#三个list都共用的同一个内存变量
参考:http://www.cnblogs.com/alex3714/articles/5188179.html
python_94_类变量实例变量的更多相关文章
- Python staticmethod classmethod 普通方法 类变量 实例变量 cls self 概念与区别
类变量 1.需要在一个类的各个对象间交互,即需要一个数据对象为整个类而非某个对象服务. 2.同时又力求不破坏类的封装性,即要求此成员隐藏在类的内部,对外不可见. 3.有独立的存储区,属于整个类. ...
- Python 类变量 实例变量
类变量: 是可在类的所有实例之间共享的值(也就是说,它们不是单独分配给每个实例的).例如下例中,num_of_instance 就是类变量,用于跟踪存在着多少个Test 的实例. 实例变量: 实例 ...
- Java易混淆的概率:成员变量、类变量、实例变量、局部变量
先看代码 public class Variable{ int b=0; //实例变量 static int a=0; //类变量 final String c="wws"; // ...
- Python语言特性之4:类变量和实例变量
类变量就是供类使用的变量,实例变量就是供实例使用的.如下面的代码: class Person: name = "Tacey" p1 = Person() p2 = Person() ...
- 实例变量和静态变量(或类变量static)
一个类通过使用运算符new可以创建多个不同的对象,这些对象将被分配不同的内存空间,准确的说法是:不同对象的实例变量将被分配不同的内存空间,如果类中有类变量,那么所有对象的这个类变量都被分配到同一处内存 ...
- 在实例中说明java的类变量,成员变量和局部变量
java中一般有三种变量:类变量,成员变量和局部变量.类变量 1.下面先看类变量,看下面这个例子 public class Demo6{ public String name; public int ...
- python的类变量与实例变量
python的类内部定义的变量 ,形式上没有区分实例变量和类变量(java的静态变量),测试结果如下:
- python中的实例方法、静态方法、类方法、类变量和实例变量
class MyTest: myname = 'peter' # add a instance attribute def __init__(self, name): self.n ...
- python中的类变量、实例变量
类变量,是各个实例共享的资源,就像中央空调,只有一个,但每个房间(实例)均可享用. 实例变量,是每个实例各自分配使用的变量,每个房间(实例)都有一台空调,供自己使用. class handle(obj ...
随机推荐
- backgroundWorker取消后,重新开始就报错:此 BackgroundWorker 当前正忙,无法同时运行多个任务。
使用BackgroundWorker控件,有2个按钮buttonBegin和buttonCancel.其他都正常,只是在用buttonBegin开始运行,然后点击buttonCancel取消后,到这里 ...
- public,protect,private访问权限
第一:private, public, protected 访问标号的访问范围. private:只能由1.该类中的函数.2.其友元函数访问.不能被任何其他访问,该类的对象也不能访问. protect ...
- windows cmd 新建和删除文件
1.新建文件夹 # 新建App文件夹 md app # 或者使用 mkdir mkdir app 2.新建文件 # 进入App文件夹cd app # 新建 index.js 文件 type nul&g ...
- poj 2769 感觉♂良好 (单调栈)
poj 2769 感觉♂良好 (单调栈) 比尔正在研发一种关于人类情感的新数学理论.他最近致力于研究一个日子的好坏,如何影响人们对某个时期的回忆. 比尔为人的一天赋予了一个正整数值. 比尔称这个值为当 ...
- 黑马学习AJAX jQuery发送异步请求 $.ajax() $.post() $.get()是在调用方法而不是定义方法
- Java基础笔记(二)——配置环境变量
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 到此处下载jdk,并安装.(选 ...
- vim如何删除行首、行位空格、空格行
删除空格行: 非编辑状态下输入:g/^$/d 删除行首空格: 非编辑状态下输入:%s/^\s*//g 删除行尾空格: 非编辑状态下输入:%s/\s*$//g
- GPU程序缓存(GPU Program Caching)
GPU程序缓存 翻译文章: GPU Program Caching 总览 / 为什么 因为有一个沙盒, 每一次加载页面, 我们都会转化, 编译和链接它的GPU着色器. 当然不是每一个页面都需要着色器, ...
- FusionCharts的类 - 实例功能
一.FusionCharts的类 - 实例功能 1.configure(name:string , value:string) or configure(configurations: Objec ...
- docker 的目录问题
今天在使用Dockerfile制作镜像的时候,使用命令 :COPY aaa.sql /usr/test 下时, 总是报错 “INFO[0001] stat /var/lib/docker/aufs/m ...