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()
原文地址:https://www.cnblogs.com/Ian-learning/p/8325370.html