Python学习之类的继承

Posted w_boy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习之类的继承相关的知识,希望对你有一定的参考价值。

class Role:
    n = 123  #类变量,存在类的内存里
    name = "我是类name"
    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 __del__(self):
        pass #print("%s 彻底死了"%self.name)
    def show_status(self):
        print("name : %s weapon:%s life_value:%s"%(self.name,self.weapon,self.__life_value))
    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))

#类开辟一块新的内存空间指向r1这个变量名,存下面的东西,name= alex,等
# 调用Role(\'Alex\', \'police\',\'AK47\')的时候把r1当作参数也传进去,是为了把\'Alex\',\'police\',’AK47’这3个值跟刚开辟的r1关联起来,
# 相当于Role(r1,\'Alex\', \'police\',\'AK47\'),self就是r1,
# 关联起来后,你就可以直接r1.name, r1.weapon 这样来调用啦
#为实现这种关联,在调用__init__方法时,就必须把r1这个变量也传进去,即传进去谁,self就是谁,否则__init__不知道要把那3个参数跟谁关联
#所以这个__init__(…)方法里的,self.name = name , self.role = role 等等的意思就是要把这几个值 存到r1的内存空间里,
# 即 r1 = Role(r1,\'Alex\', \'police\',\'AK47\')
# r1.name="alex"
# r1.role="Police"
# r1.buy_gun("AK47")  # Role.buy_gun(r1)
# #把一个类变成一个具体对象的过程叫实例化(初始化一个类,造了一个对象)
# #生成一个角色
# r2 = Role(\'Jack\', \'terrorist\',\'B22\')
# #生成一个角色
# r1.buy_gun("AK47")  # Role.buy_gun(r1)
# print(Role.n)

r1 = Role(\'Alex\', \'police\',\'AK47\')
r1.buy_gun("AK47")
r1.got_shot()
# print(r1.__life_value)
r1.show_status()
# del r1

r2 = Role(\'Jack\', \'terrorist\',\'B22\')
r2.buy_gun("AK47")
r2.got_shot()

 

以上是关于Python学习之类的继承的主要内容,如果未能解决你的问题,请参考以下文章

Python基础之类与模块化

python之类的继承

10. python入门速通教程之类继承类类中的特殊方法

10. python入门速通教程之类继承类类中的特殊方法

Python面向对象之类的封装继承与多态

Python之类的继承