#!/usr/local/bin/python3
# -*- coding:utf-8 -*- class Role(object):
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_val:%s"%(self.name, self.weapon, self.__life_value)) def __shot(self): # 方法前加上两个下划线__代表这个方法为私有方法,外部无法调用
print("shooting...") def got_shot(self):
print("%s:ah...,I got shot..."% self.name)
self.__life_value-=50 def buy_gun(self, gun_name):
print("just bought %s" % gun_name)
'''
# 类变量和实例变量调用优先级:先找实例变量,如果实例中没有,那么就去找类变量
print(Role.n, Role.name)
r1 = Role('Alex', 'police', 'AK47') # 对象,又叫做Role这个类的实例
r1.name = "张宇" # 对实例变量重新赋值
r1.cloth = True # 增加了新的实例变量(只在实例r1中才有,跟r2没有关系)
del r1.weapon #删除了实例变量
r1.n = "改类变量" # 其实此处并不是改类变量,而是在实例中创建类一个变量n而已,和类变量没有关系
print(r1.n, r1.name, r1.cloth)
r2 = Role('Jack', 'terrorist', 'B22')
r2.name = "马宏燕"
print(r2.n, r2.name) Role.n = 456
print(r1.n, r2.n)
'''
'''
# 析构函数示例:
r3 = Role('zhangyu', 'police', 'SKS')
r3.buy_gun("AK47")
r3.got_shot()
del r3
r4 = Role('mahongyan', 'police', 'SKS')
r4.buy_gun("AK47")
r4.got_shot()
''' # 私有属性值的修改示例:
r5 = Role('mahongyan', 'police', 'SKS')
r5.got_shot()
r5.show_status()

  

python面向对象-cs游戏示例的更多相关文章

  1. Python开发【第六章】:Python面向对象

    编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种 ...

  2. Python面向对象-day07

    写在前面 上课第七天,打卡: 时间的高效利用: 前言: 今天egon老师补充了下 is 和 == 的区别,整理如下:Python中变量的属性以及判断方法 一.面向过程和面向对象 - 1.面向过程 核心 ...

  3. Python面向对象初始(三大特征,多态,继承,封装)

    Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的 ...

  4. python面向对象--快速入门

    1面向对象基本用法 1.1基本格式 class 类名: def __init__(self,x): self.x = x def 方法名字 (self): #函数在类里称为方法,self就是固定参数, ...

  5. python 面向对象初级篇

    Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...

  6. Python 面向对象 基础

    编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...

  7. 12岁的少年教你用Python做小游戏

    首页 资讯 文章 频道 资源 小组 相亲 登录 注册       首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...

  8. python开源项目及示例代码

    本页面是俺收集的各种 Python 资源,不定期更新. 下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的:否则是 Python 语言内置的. 1 算法 1.1 字符串处理 ...

  9. Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)

    Python 面向对象(初级篇)   51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...

随机推荐

  1. 去掉iframe白色背景方法

    在iframe内添加如下代码 style="display:none" onload="this.style.display = 'block';" 先让它不显 ...

  2. 爬楼梯C++

    class Solution {public: /** * @param n: An integer * @return: An integer */ int climbStairs(int n) { ...

  3. 每天一个linux命令-id,输出用户的uid、gid

    id命令可以输出用户真实有效的uid和gid,uid代表用户的唯一标识,gid代表用户组id,与用户是一对多的关系. 命令格式:     id [-gGnru] [用户名称]   除了id命令之外,还 ...

  4. django模板templates详解(二)

    1 总体结构 ​ Django是MTV结构,即:Model, Template, View Model:定义数据的存储格式,并且提供了数据库访问的API. View:定义那些数据被显示,是业务逻辑处理 ...

  5. Oracle日志组添加冗余文件和日志组

    rac中需要指定thread添加日志组RAC:alter database add logfile thread 1 group 1('+DATA/irac/redo01_1.log','+DATA/ ...

  6. mysql导入csv格式文件

    今天测试导入csv格式文件,虽然简单但是如果不注意还是会出现错误,而且mysql在某些方面做的确实对新手不是很友好,记录一下:创建一个csv格式文件:[mysql@xxx1 ycrdb]$ more ...

  7. selenium + python(鼠标操作)

    关于最近学习selenium自动化测试鼠标操作的一些总结 常见的鼠标操作

  8. 在已有软件加壳保护 下实现 Inline hook

    如写的不好请见谅,本人水平有限. 个人简历及水平:. http://www.cnblogs.com/hackdragon/p/3662599.html 正常情况: 接到一个项目实现对屏幕输出内容的获取 ...

  9. listview加载显示图片

    public class ImageAndTextListAdapter extends ArrayAdapter<ImageAndText> { private ListView lis ...

  10. SP348 EXPEDI - Expedition

    嘟嘟嘟 水贪心. 当经过一个加油站的时候,记下这个加油站能加的油,然后没油的时候从经过的加油站中选择加油最多的加. #include<cstdio> #include<iostrea ...