2020-08-30 python面向对象学习及麦叔迷宫实战

本文介绍了作者在深入学习Python面向对象编程后的理解和实践,通过参与麦叔迷宫项目,掌握了类、实例、属性和方法等核心概念。文章提供了类定义的框架,并分享了在实现麦叔迷宫过程中遇到的问题与解决方案,强调了实例化过程中的初始化函数作用。尽管在迷宫游戏中仍有一些功能待完善,作者认为这证明了自己已经具备了一定的基础,并推荐读者观看麦叔的相关课程进行学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

他来了他来了!!!经过几天面向对象的继续学习,感觉自己懂了不少面向对象的知识,并且通过学习麦叔面向对象的课程,自己也动手实现了“麦叔迷宫”。接下来总结下面向对象这部分知识,然后加上“麦叔迷宫”自己写的代码。

面向对象(Object Oriented Programming)

面向对象中几个重要的概念应该就是类、实例(对象)、属性、方法
什么是类,其实就是一些事物共有的特征(一些实体的共性);实例就是具体的实物,他们出了来自同一个类,具有类的共同特征外,他们还有自己的独有的特征(实例的个性);类和实例都具有属性和方法,类不可以访问实例的属性和方法(未实例化的属性和方法是未知的),而实例却可以访问类的属性和方法。比如以前做月饼的时候是有模子的,这就是类,通过这个模子做出来的月饼都是这个样子,但是你把月饼做出来后可以在上面撒上自己喜欢的果酱了、调料了等,这就是实例化,他们有类的特则,同时也有自己的个性(不同的口味)。

定义类的框架

我喜欢说框架的部分,说半天肯定不好理解,但结合代码会看懂很多。
在这里插入图片描述
init()函数(构造函数)表示实例化后就自动调用的函数,其中除了self,其他参数必须在实例化时加入,否则会出错。同时也可以在构造函数中加入一些初始的属性,已便下面函数的共同调用。
当实例属性与类属性同名时,优先调用实例属性。所以修改类属性时得用类去修改,而不是实例去修改,因为实例去修改时仅仅是为该实例增加了一个与类属性同名的属性,并没有实质性的改变类属性。类修改:Dog.string = ‘1111’, 实例增加属性:d1.string=‘2222’

麦叔迷宫-面向对象

上代码,需要知道的知识点很多。写了两遍下来,有很多功能还没实现,比如Devil的移动不能出游戏边界,通往下一关等,主要还有一点就是对turtle库不了解,好多api还得查查怎么用。不过自己总算是完整的撸下来了,证明还是有一定基础了。

import turtle as t
import random
import time


mz = t.Screen()
mz.setup(700, 700)
mz.bgcolor('#A0522D')
mz.title('一个小游戏')
mz.register_shape('wall.gif')
mz.register_shape('pr.gif')
mz.register_shape('pl.gif')
mz.register_shape('e.gif')
mz.register_shape('gold.gif')
mz.tracer(0)


level_1 = [
"XXXXXXXXXXXXXXXXXXXXXXXXX",
"XXX   XXXXXX  XXXXXXXXXXX",
"XXX  XXXXXXXP XXXXXXXXXXX",
"XXX  XXXXXXX  XXXXXXXXXXX",
"XXX                  XXXX",
"XXX  XX XXXX  XXXXX  XXXX",
"XXX  XXGXXXX  XXXXXE  EXX",
"XXX  XXXXXXX  XXXXX   XXX",
"XXX  XXXXXXX  XXXXX    XX",
"XX                     XX",
"XXXX  XXXXXX  XXXX   XXXX",
"XXXX  XXXXXX  XXXXXXXXXXX",
"XXXXE            XXX XXXX",
"XXXXXXX  XEXXXX  XXXXXXXX",
"XXXXXXXX  XXXXXX  GXXXXXX",
"XXXXXXX  XXXXXX  XXEXXXXX",
"XX               XXXXXXXX",
"XX   XX  XXXXXXXXXXXXXXXX",
"XX   XX  X              X",
"XX   XXXXXXXXXXXXX  XXXXX",
"XX     XXXXXGXXXXX  XXXXX",
"XX            XXXX      X",
"XXXX                    X",
"XXXXXXXXXXXXXXXXXXXXXXXXX"
]

class Player(t.Turtle):
    
    def __init__(self):
        super().__init__()
        self.penup()
        self.speed(0)
        self.shape('pr.gif'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值