• day06_01 类 小事例


    dog.py

    __author__ = "Alex Li"
    
    
    class Dog:
        def __init__(self,name):
            self.name = name
    
        def bulk(self):
            print("%s: wang wang wang!" % self.name)
    
    
    d1 = Dog("陈荣华")
    d2 = Dog("陈三炮")
    d3 = Dog("陈老泡")
    
    d1.bulk()
    d2.bulk()
    d3.bulk()
    

    cs_play.py

    __author__ = "Alex Li"
    
    
    class Role:
        n = 123 #类变量
        n_list = []
        name = "我是类name"
        def __init__(self, name, role, weapon, life_value=100, money=15000):
            #构造函数
            #在实例化时做一些类的初始化的工作
            self.name = name #r1.name=name实例变量(静态属性),作用域就是实例本身
            self.role = role
            self.weapon = weapon
            self.__life_value = life_value
            self.money = money
        def __del__(self):
            # 构造函数
            # 在实例释放、销毁的时候自动执行的,通常用于做一些收尾工作
            pass #print("%s 彻底死了。。。。" %self.name)
    
        def show_status(self):
            # 私有属性 __life_value
            print("name:%s weapon:%s life_val:%s" %(self.name,
                                                     self.weapon,
                                                    self.__life_value))
        def __shot(self): # 类的方法,功能 (动态属性)
            print("shooting...")
    
        def got_shot(self):
            self.__life_value -=50
            print("%s:ah...,I got shot..."% self.name)
    
        def buy_gun(self, gun_name):
            print("%s just bought %s" % (self.name,gun_name) )
    
    
    r1 = Role('Chenronghua', 'police',  'AK47') # 把一个类变成一个具体对象的过程叫 实例化(初始化一个类,造了一个对象)
    
    #私有方法
    # r1.__shot()
    
    print(r1.show_status())
    
    
    r2 = Role('jack', 'terrorist', 'B22')  #生成一个角色
    r2.got_shot()
    print(r2.show_status())
    
    r1.name = "陈荣华"
    r1.n_list.append("from r1")
    r1.bullet_prove = True
    
    r1.n = "改类变量" #创建实例变量,未变动类变量
    print("r1:",r1.weapon,r1.n )
    
    # #删除类属性
    # del r1.weapon
    # del r1
    
    
    print(r1.n,r1.name,r1.bullet_prove,r1.weapon)
    
    
    r2 = Role('jack', 'terrorist', 'B22')  #生成一个角色
    r2.name = "徐良伟"
    r2.n_list.append("from r2")
    print("r2:",r2.name,r2.n,r2.n_list)
    
    # r2.got_shot() #Role.got_shot(r2)
    
    #更改类变量
    Role.n = "ABC"
    print(Role.n_list)
    
    print(r1.n ,r2.n )
    
    
  • 相关阅读:
    从头带你撸一个Springboot Starter
    Spring Cache 带你飞(二)
    2021年终总结
    数据中台(介绍篇)
    NetCore实现全局模型绑定异常信息统一处理
    [源码解析] PyTorch 分布式之弹性训练(2)启动&单节点流程
    [源码解析] PyTorch 分布式(18) 使用 RPC 的分布式管道并行
    [源码解析] PyTorch 分布式之弹性训练(1) 总体思路
    [源码解析] PyTorch 分布式之弹性训练(3)代理
    [源码解析] PyTorch 分布式之弹性训练(5)Rendezvous 引擎
  • 原文地址:https://www.cnblogs.com/netflix/p/14854926.html
Copyright © 2020-2023  润新知