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 ...
随机推荐
- java 多线程下载文件并实时计算下载百分比(断点续传)
多线程下载文件 多线程同时下载文件即:在同一时间内通过多个线程对同一个请求地址发起多个请求,将需要下载的数据分割成多个部分,同时下载,每个线程只负责下载其中的一部分,最后将每一个线程下载的部分组装起来 ...
- urlencode()和urldecode()
urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%.一般用在url链接地址编码urldecode()函数与urlencode()函数原理相反,用于解码已编 ...
- Sql Server常用函数及技巧
使用Sql Server好长时间了,今天特别想总结一下,算是回顾吧! 总结: 其实很多技巧,都是基于SQL Server自带的System Views,System Stored Procedures ...
- 译—— a tale of viewport2
这一页我们将讨论移动浏览器.如果您对移动设备完全陌生,我建议您首先阅读第一部分关于桌面浏览器的内容,以便在熟悉的环境中做好准备. 移动浏览器的问题 移动浏览器和桌面浏览器比较,最明显的差异是屏幕大小. ...
- centos 创建 logrotate 进行日志分割
这里就不赘述logrotate了,具体是什么,有什么作用,自行百度. 我们先说下,如何进行nginx的日志切割: 比如:日志目录为:/usr/local/nginx/logs/access.log按照 ...
- uoj207共价大爷游长沙
话说我可能还没有调出魔法森林呢...说好的lct第一题呢... 又是一个随机化的方法,毕竟又是判定性的问题 上次是判断无向图联通 这次是判断一些路径是否经过一条定边 若把路径上的边全部异或上一个路径的 ...
- PHP全国省市区地址分割提取脚本程序
github地址: https://github.com/zmxfree/addressapart 比如将 浙江省杭州市江干区XX路X号 分割成 浙江省 杭州市 江干区 XX路X号,方便excel操作 ...
- redis最佳实践
总结: String类型的value(string/list/set/hash)使用StringRedisTemplate 其他类型的value(string/list/set/hash/object ...
- Net Core2.0 基于QuartzNet任务管理系统
Net Core2.0 基于QuartzNet任务管理系统 Quartz.NET官网地址:https://www.quartz-scheduler.net/ Quartz.NET文档地址:https: ...
- centOS6.5 安装后无法启动无线上网
查看无线网卡型号:[root@mookee rtl8192se_linux_2.6.0019.1207.2010]# lspci |grep Network03:00.0 Network contro ...