• Python学习-类的基本知识


    #! /usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author linux ku
    
    
    class Dog():
        def __init__(self, name):
            self.name = name
    
        def bulk(self):
            print("%s : Wang wang wang!"%self.name)
    
    
    
    
    dog1 = Dog("dog1")
    
    dog2 = Dog("dog2")
    
    dog1.bulk()
    dog2.bulk()
    
    
    class Role(object):  #类名
        n = 222    #类变量 :先找实例变量然后再找类变量
    
        def __init__(self, name, role, weapon, life_value=100, money=15000, secret = "secret"):  #构造函数
    #构造函数,这个东西的目的,我觉得是再内存中开辟一个位置,相当于是给了一个铭牌号。
    #在实例化的时候做一些类的初始化的工作。
    #内存的运行是,内存的门牌号其实是在赋值的时候进行的,比如 r1 = Role(r1,xxx,xx),时候申请一下,然后在运行这个构造函数的时候把具体的内容传入
    #运行构造函数的时候是,self是r1传入赋予r1的值,所以self其实就是用来区分的。所以说参数self就是预留给实例化名称的。
            self.name = name  #实例变量(静态属性),作用域是在实例的本身
            self.role = role
            self.weapon = weapon
            self.life_value = life_value
            self.money = money
            self.__secret = secret  #私有属性,只能在内部的方法中可以改动
    
    #下面的函数是在类里面的,没有在实例化的地方存起来的
        def shot(self): #这里的self是实例化的具体名称,标志着地址
            print("shooting...")
    
        def got_shot(self):  #类的方法,功能(动态属性)
            print("ah...,I got shot...")
    
        def show_secret(self):
            print("The secret is %s" %self.__secret)
    
        def __secret_method(self):  #私有方法,只能内部调用
            print(self.__secret)
    
        def show_secret_method(self):
            self.__secret_method()
    
        def buy_gun(self, gun_name):
            print("just bought %s" % gun_name)
    
        def show_all_vari(self):
            print("All the vari: %s" % {self.name,self.role,self.money,self.life_value} )
    
    
    #析构函数:在实例释放、销毁的时候执行的,通常用于做一些收尾工作,如关闭一些数据库链接,打开的临时文件
    #这个函数会在程序退出的时候自动使用,也可以手动提前使用 del r1
        def __del__(self):
            print("end the example.%s " % self.name)
            print("or do other necessary work.")
    
    
    
    r1 = Role('Alex', 'police', 'AK47')  #生成一个角色
    
    r1.show_all_vari()
    r1.got_shot()  #实际是Role.got_shot(r1)
    print("this is secret method:")
    r1.show_secret_method()
    print("this is secret property:")
    r1.show_secret()
    
    
    print("---------")
    
    r2 = Role('Jack', 'terrorist', 'B2')  #生成一个角色
    r2.got_shot()
  • 相关阅读:
    yzoj P2344 斯卡布罗集市 题解
    yzoj P2350 逃离洞穴 题解
    yzoj P2349 取数 题解
    JXOI 2017 颜色 题解
    NOIP 2009 最优贸易 题解
    CH 4302 Interval GCD 题解
    CH4301 Can you answer on these queries III 题解
    Luogu2533[AHOI2012]信号塔
    Luogu3320[SDOI2015]寻宝游戏
    Luogu3187[HNOI2007]最小矩形覆盖
  • 原文地址:https://www.cnblogs.com/Ian-learning/p/8325370.html
Copyright © 2020-2023  润新知