zoukankan      html  css  js  c++  java
  • 1.25 Python知识进阶

     封装

    示例代码:

    class Role(object):
      count = 0
      
    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

         self.__heart = "normal"

       def shot(self):

         print("shooting...")

       def got_shot(self):

         print("ah...,I got shot...")

         self.__heart = 'Die'

       def buy_gun(self,gun_name):

         print("just bought %s" %gun_name)

    r1 = Role('Alex','police','AK47’) #生成一个角色

    r2 = Role('Jack','terrorist','B22’) #生成一个角色

    分析代码

      构造方法:函数__init__称为构造函数,或构造方法,用于执行类的实例的初始化工作。

      析构方法:函数__del__称为析构函数,或析构方法,用于实现销毁类的实例所需要的操作。通过del语句,可强制销毁一个对象实例。

      实例方法:又称为公有方法。类方法的第一参数一般为self,这种方法称为实例方法。像shot函数都是实例的方法,如果写成__shot就是私有方法。变成私有方法,就不能直接访问,但是可以在其他方法中访问。

      属性:类的数据成员是在类中定义的成员变量,用来存储描述类的特征的值。

      实例属性:通过self.变量名定义的属性,称为实例属性,也称为实例变量,成员属性,成员变量。示例代码中,在构造方法__init__中定义的self.name等就是实例属性。

        初始化:

          一般在__init__方法中初始化

          self.实例变量名 = 初始值

        访问:

          在其他函数中访问:

          self.实例变量名 = 值  # 写入

          self.实例变量名     # 读取

          在通过对象实例访问:

          obj1 = 类名()        # 创建对象实例

          obj1.实例变量名 = 值  # 写入

          obj1.实例变量名     # 读取

      私有属性:通常,以两个下划线开头,但是不以两个下划线结束的属性称为私有属性。私有属性不能直接被访问,但是可以在方法中访问。示例代码中,self.__heart就是私有属性,只能在方法中进行调用。

        强制访问方法:r1._Role__heart 就可以在外部访问到

      类属性:声明属于类本身的变量,即类的属性,也称为类变量、静态属性,有的称它是公有属性。示例代码中,count就是类的属性

        初始化:

          类变量名 = 初始值

        访问:

          类名.类变量名 = 值  # 写入

          类名.类变量名     # 读取

    知识框架

     

  • 相关阅读:
    boost::asio在VS2008下的编译错误
    Java集合框架——接口
    ACM POJ 3981 字符串替换(简单题)
    ACM HDU 1042 N!(高精度计算阶乘)
    OneTwoThree (Uva)
    ACM POJ 3979 分数加减法(水题)
    ACM HDU 4004 The Frog's Games(2011ACM大连赛区第四题)
    Hexadecimal View (2011ACM亚洲大连赛区现场赛D题)
    ACM HDU 4002 Find the maximum(2011年大连赛区网络赛第二题)
    ACM HDU 4001 To Miss Our Children Time (2011ACM大连赛区网络赛)
  • 原文地址:https://www.cnblogs.com/topspeedking/p/6913666.html
Copyright © 2011-2022 走看看