我需要了解对象,还是只需学习字典就行?
好的,我尽量简短一点 =)
我承认我还是个新手。-.- 但我相信我不需要学会所有的东西……而是专注于一些适合我项目的知识,这样可能会节省我的时间……?
我打算制作一个我已经设计好的游戏,但还没开始动手。
我会学习完成这个项目所需的一切。
不过为了节省时间……
我使用的是Python。这个游戏只需要在一个网格上标记位置,并给这些位置赋值:
比如一个绿色的“松树”方块 = *信息 *值 = 树的类型 / 树的硬度 / 树的寿命等等……
我可能错了,认为不需要对象?我应该把所有时间都花在学习字典的用法上吗……
对于一个基于网格的瓷砖游戏,什么样的编码方式最有效,能够模拟每回合的变化?
也就是说,一个蓝色方块会根据一套规则和相邻的方块在每回合结束时扩散。而这些方块都有附加的值……?即使只是告诉我最可行的技术名称……我可以在知道我需要学习什么后再去学怎么做……
2 个回答
我不同意你应该一开始就学会所有东西。我觉得只要在需要的时候学一些语言的部分就可以了。
不过在Python中,你真的不能避免学习一些关于对象的知识。因为在Python里,所有东西都是对象。比如一个 string
(字符串)或者 int
(整数)或者其他任何数据类型,都是对象。更重要的是,你导入的任何东西也是对象。你在任何项目中都无法避免导入现有的功能,所以你必须使用面向对象的接口。
那么,你能不能不学怎么定义自己的对象类呢?原则上是可以的。但理解基本概念其实很简单,然后你可以在需要的时候再学习其他的内容。
Class MyObject(object):
pass
这很容易学!现在你有了一个自定义类型(一个 类)的对象。你可以通过调用 m = MyObject()
来创建一个实际的对象。这个类提供的功能几乎和字典一样。但你可以从这里开始,然后在需要的时候添加更多功能(比如继承、方法等)。如果你在适合使用对象的情况下从字典开始,你就会陷入困境。
任何规模的Python项目如果没有对象,就会变得难以管理。
你可以用模块来代替类作为对象吗?可以,如果你真的想这样做的话。(在Python中,模块就是指一个单独的文件。)
不过,即使你不创建用户自定义的类,你仍然需要学习如何使用对象。
为什么呢?因为在Python中,一切都是对象。你至少需要知道如何使用对象,这样才能理解Python内置的类型和函数。
在Python中,字典在内部实现上非常重要,所以你觉得字典可以作为替代是对的。
但是字典也是对象,所以你还是得学习如何使用对象,而不是仅仅依赖于普通的字典来获得它们的便利。
我的建议是?去做一个Python教程(或者三个)。把整个教程都学完。即使是那些关于网络编程的部分,或者你觉得自己不会用到的内容。你会学到一些关于这个语言的知识,后来会以你意想不到的方式用到。
你需要学习元类吗?不需要。多进程呢?也不需要。但你需要学习所有核心语言特性,而类和面向对象编程就是核心语言特性。这在几乎所有现代语言中都非常重要,以至于人们都不再提及它了。