zoukankan      html  css  js  c++  java
  • 面向对象编程-类变量与实例变量

     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')
  • 相关阅读:
    html 带渐变的吸顶效果 vue
    Linux添加环境变量
    C#集合通论
    Android adb 命令导出数据库
    查看签名方式及签名信息
    啥 啥 啥,服务治理是个啥
    令牌桶、漏斗、冷启动限流在sentinel的应用
    MySQL事务
    MySQL优化
    MySQL视图、存储过程、函数、触发器
  • 原文地址:https://www.cnblogs.com/BIT-taozhen/p/10127705.html
Copyright © 2011-2022 走看看