zoukankan      html  css  js  c++  java
  • python之面向对象之封装

    今天我们终于进入了面向对象,今天做一下面向的封装的总结

    #面向对象的封装
    #这里定义了一个类,名称为Role,object是所有类的父类
    class Role(object):
        #这里是定义实例的属性,这个实例的属性分别有name,role,wepon,life_value,如果我们通过类Role去创建一个实例的时候,就必须传递这几个参数
        #需要说的时候,这里的属性是实例的属性,而不是类的属性,具体关于类的属性,我们在后面介绍
        def __init__(self,name,role,wepon,life_value):
            self.name = name
            # name = name
            self.role = role
            self.wepon = wepon
            self.life_value = life_value
        #这里定义一个函数,这个函数是类的函数,我们通过这个类创建的任何一个实例都可以调用这个函数,这里的self就是调用这个函数实例,gun是调用这个函数
        #我们需要传递的一个参数,因为我们是通过实例来调用类的方法,所以这里的self参数python默认就帮我们处理了
        def buy_gun(self,gun):
            print("名称为[%s]的人买了[%s],我的角色是[%s]" %(self.name,gun,self.role))
            #改变实例中的变量的值
            self.wepon = gun
    
    
    #通过类Role来生成两个实例
    p1 = Role("p1","Police","B10","10")
    t1 = Role("t1","Terror","B11","100")
    
    #创建出来的实例就可以调用它的类Role的方法bug_wepon
    p1.buy_gun("C10")
    print(p1.name)
    print(p1.role)
    print(p1.life_value)
    print(p1.wepon)
    
    # 名称为[p1]的人买了[C10],我的角色是[Police]
    # p1
    # Police
    # 10
    # C10


    t1.buy_gun("C11") print(t1.name) print(t1.role) print(t1.life_value) print(t1.wepon)
    # 名称为[t1]的人买了[C11],我的角色是[Terror]
    # t1
    # Terror
    # 100
    # C11

    #self就是实例本身,也就是我们上

      

  • 相关阅读:
    golang 常见疑惑总结
    golang 详解defer
    golang调试工具Delve
    ACE的源码划分
    通过#define连接字符串的特殊方法[转]
    转:extern "C"的用法解析
    转:3d max 2013 安装教程,凭着一种互联网精神提供给广大朋友
    转:Bullet物理引擎不完全指南(Bullet Physics Engine not complete Guide)
    转:折腾一晚上Bullet及Ogre相关工具的成果 -- 3Ds Max,Maya, blender, GameKit
    转:CMake快速入门教程-实战
  • 原文地址:https://www.cnblogs.com/bainianminguo/p/7190037.html
Copyright © 2011-2022 走看看