面向对象编程-类变量与实例变量

Posted bit-taozhen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象编程-类变量与实例变量相关的知识,希望对你有一定的参考价值。

 1 class Role(object):#执行时之后就存在内存里
 2     n=我是类里的n #类变量,保存在类的内存里
 3     list=[]
 4     name=我是类里的name
 5     def __init__(self,name,role,weapon,life_value=100,money=15000):
 6         #构造函数
 7         #作用:在实例化时做一些类的初始化工作,开辟一块内存
 8         self.name=name #实例变量(静态属性),作用域是实例本身,保存在实例的内存里
 9         self.role=role
10         self.weapon=weapon
11         self.life_value=life_value
12         self.money=money
13 
14     def shot(self):#类的方法,功能(动态属性)
15         print(%s is shooting... % self.name)
16 
17     def got_shot(self):
18         print(%s is getting shot... % self.name)
19 
20     def buy_gun(self,gun_name):
21         print(%s has bought %s % (self.name,gun_name))
22 
23 print(Role.n,Role.name)
24 role1=Role(James,police,AWM) #实例化,生成一个对象
25 #调用role的同时也将role1传进去了,类里面函数自带的self就是为了传实例名role1
26 #实际上实例化的过程是是这样的:
27 #role1=Role(role1,‘James‘,‘police‘,‘AWM‘)
28 #role1.name=‘James‘
29 #role1.role=‘Police‘
30 #role1.weapon=‘AWM‘
31 #role1.shot()#实际上是Role=shot(role1)
32 #role1.got_shot()#实际上是Role=got_hot(role1)
33 #role1.buy_gun()#实际上是Role=buy_gun(role1,gunnamme)
34 
35 #与调用函数不同
36 #调用函数,-》执行,-》返回结果
37 #role1=role.__init__() return 地址
38 
39 #更改,重新赋值
40 role1.name=Paul
41 
42 #加新属性
43 role1.bullet_proof=True
44 
45 #删掉属性
46 del role1.weapon
47 
48 print(role1.n,role1.name)#先在实例里面找变量,再在类里面找这个变量
49 role1.shot()
50 role1.got_shot()
51 role1.buy_gun(AK47)
52 role1.list.append(r1)
53 
54 role2=Role(Bronny,police,AWM)
55 role2.list.append(r2)
56 print(Role.list)
57 
58 role1.n=改类变量#实际上是在role1里加了一个n变量
59 print(role1.n)
60 print(role2.n)
61 print(Role.n)

结果:

技术分享图片

 

类变量的作用:大家共用的属性

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:James Tao
 4 
 5 #类变量:
 6 #作用:大家共用的属性
 7 class Person:
 8     cn=中国
 9     def __init__(self,name,age,addr,cn=China):
10         self.name=name
11         self.age=age
12         self.addr=addr
13         self.cn=cn
14 
15 p1=Person(James,23,Beijing)

 

以上是关于面向对象编程-类变量与实例变量的主要内容,如果未能解决你的问题,请参考以下文章

python 面向程序编程

javascript 仿面向对象编程实例代码(私有,公共变量。。。)

简易面向对象编程

Python面向对象编程第06篇 实例变量

Python面向对象编程第06篇 实例变量

学习Pytbon第十七篇,面向对象编程