【Python从零到壹】用Python实现植物大战僵尸里的面向对象

本文介绍了Python中的类构成规则,包括类名的命名规范,以及类、对象、内存分配、实例化、静态方法、实例方法和类方法的区别。并通过实例演示了如何创建对象并操作其属性和方法。此外,还提到了如何用Python实现植物大战僵尸中的面向对象编程,并推荐了一份全面的Python开发学习资料。
摘要由CSDN通过智能技术生成

类的组成:

  • 类名的规范: 是由一个或者多个单词组成的,要求每个单词的首字母大写,其余的小写;

  • Python中一切皆对象,需要开辟内存空间

作者:互联网老辛

开发时间:2021/4/4/0004 6s

class Student:

pass

print(id(Student))

print(type(Student))

print(Student)

在这里插入图片描述

看到ID的数值,就知道这里的类是开辟了一块内存空间。

案例1:学生类模板

作者:互联网老辛

开发时间:2021/4/4/0004 6s

class Student:

native_pace=‘山东’ # 直接写在类里的变量,成为属性 ,学生的地方属性是山东

#实例方法: 在类之外定义称为函数,在类之内定义成为方法

def init(self,name,age):

self.name=name

self.age=age #self.name称为实体属性,进行了一个复制操作,将局部变量name赋值给实体的属性

def eat(self):

print(‘正在吃饭’) # 这是一个方法,叫吃饭方法,也叫动态属性

#静态方法

@staticmethod

def method():

print(‘我使用了statticmethod进行修饰,所以我叫静态方法’)

@classmethod

#这种叫类方法

def cm(cls):

print(‘我是类方法,因为我使用了classmethod进行修饰’)

通过这个案例来了解,静态方法,实例方法,以及类方法和动态属性

b) 创建对象

对象的创建又称为类的实例化

语法: 实例名=类名()

类名+括号就是实例化,会自动触发 _ init _函数运行,可以用它来为每个实例定制自己的特征。

作者:互联网老辛

开发时间:2021/4/4/0004 6s

class Student:

native_pace=‘山东’ # 直接写在类里的变量,成为属性

#实例方法: 在类之外定义称为函数,在类之内定义成为方法

def init(self,name,age):

self.name=name

self.age=age #self.name称为实体属性,进行了一个复制操作,将局部变量name赋值给实体的属性

def eat(self):

print(‘正在吃饭’)

#静态方法

@staticmethod

def method():

print(‘我使用了statticmethod进行修饰,所以我叫静态方法’)

@classmethod

#这种叫类方法

def cm(cls):

print(‘我是类方法,因为我使用了classmethod进行修饰’)

创建Student的对象

stu1=Student(‘互联网老辛’,40)

stu1.eat()

print(stu1.name)

print(stu1.age)

在这里插入图片描述

实例化的过程就是: 类——>对象的过程。

我们原本只有一个Student类,产生了一个stu1对象,这个对象有自己的具体命令,年龄,以及吃饭的方法。

案例2

作者:互联网老辛

开发时间:2021/4/4/0004 6s

class Person:

role=‘person’ #角色的属性是人

def init(self,name):

self.name = name #每个角色有一个自己的名字

def walk(self):

print(“person can walking”)

##实例化过程

p1=Person(‘张三’) #类名()就相当于执行 Person.init()

#这里你可以理解为 p1={‘name’:‘张三’,’walk’:‘walk’}

print(p1.name) #查看属性直接 对象名,属性名

print(p1.walk()) # 调用方法, 对象名.方法名

大部分的注释都写在代码里了,可以看代码去理解

再给刚才的代码增加功能,比如人不但可以走路还可以攻击狗

class Person:

role=‘person’ #角色的属性是人

def init(self,name,aggressivity,life_value):

self.name = name #每个角色有一个自己的名字

self.aggressivity = aggressivity # 每个角色都有一个攻击力

self.life_value = life_value #每个角色都有一个生命值

def walk(self):

print(“person can walking”)

def attack(self,dog):

dog.life_value -= self.aggressivity

##实例化过程

p1=Person(‘张三’,10,1000) #类名()就相当于执行 Person.init()

#这里你可以理解为 p1={‘name’:‘张三’,’walk’:‘walk’}

print(p1.name) #查看属性直接 对象名,属性名

print(p1.walk()) # 调用方法, 对象名.方法名

print(p1.aggressivity)

print(p1.life_value)

c) 类属性,类方法,静态方法

  • 类属性: 类中方法外的变量称为类属性,该类被所有对象共享

  • 类方法: 使用@classmethod修饰方法,使用类名直接访问

  • 静态方法 使用@staticmethod修饰的方法,使用类名直接访问的方法

Print(Student.native_place) 访问类属性

student.cm 调用类方法

student.sm 调用静态方法

用Python实现植物大战僵尸里的面向对象


class Flora:

role=‘flora’ # 定义一个植物类,属性是植物

def init(self,name,aggressivity,life_value,money):

self.name=name

self.aggressivity=aggressivity ## 每个角色都有自己的攻击力

self.life_value=life_value #每个角色都有自己生命值
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

mg-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较复杂的项目,需要使用一些第三方库和框架来实现。您需要下载并安装Pygame和Python 3才能开始。以下是一个简单的植物大战僵尸的实现步骤: 1.创建游戏窗口 您需要在程序中创建一个游戏窗口,然后将所有的游戏对象绘制到窗口上。您可以使用Pygame库来创建游戏窗口,如下所示: import pygame pygame.init() # 设置游戏窗口的宽度和高度 width, height = 640, 480 screen = pygame.display.set_mode((width, height)) # 更新游戏窗口 pygame.display.update() 2.绘制游戏对象 植物大战僵尸中包含了很多不同的游戏对象,如太阳花、子弹、僵尸等等。您需要在游戏窗口中绘制这些对象,并在游戏中进行交互。在Pygame中,您可以使用Surface对象来绘制游戏对象。下面是一个绘制太阳花的例子: # 加载太阳花的图片 sunflower_image = pygame.image.load('sunflower.png') # 在屏幕上绘制太阳花 screen.blit(sunflower_image, (100, 100)) # 更新游戏窗口 pygame.display.update() 3.游戏交互 植物大战僵尸中的各种游戏对象之间需要进行一些交互,如太阳花可以产生太阳,然后玩家可以使用太阳购买更多的植物来防守。在Pygame中,您可以使用事件来实现游戏的交互。例如,您可以添加以下代码来响应玩家的鼠标点击事件: for event in pygame.event.get(): if event.type == pygame.MOUSEBUTTONUP: # 玩家点击事件 print('Mouse clicked at', pygame.mouse.get_pos()) 这只是一个简单的示例,您需要根据植物大战僵尸的规则和玩法来实现更多的游戏交互。同时也需要注意游戏的性能优化,如使用双缓冲技术等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值