zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Oracle-函数
    Oracle-存储过程
    Linux-文件系统概述
    Oralce-PL/SQL编程-游标
    Oracle -操作数据库
    Oralce常用系统函数
    SQL语言基础-基本概念
    Linux-进程管理
    Linux-用户管理
    shell里的IFS内置环境变量
  • 原文地址:https://www.cnblogs.com/tianqizhi/p/8468868.html
Copyright © 2011-2022 走看看