【问题标题】:Do I need to learn about objects, or can I save time and just learn dictionaries? [closed]我需要了解对象,还是可以节省时间并只学习字典? [关闭]
【发布时间】:2011-08-13 09:33:24
【问题描述】:

可以简短=)

我是菜鸟,是的。 -.- 但我确信我不需要学习所有东西.. 适合我项目的特定知识领域可能会节省我的时间..? 我将构建一个我已经设计但尚未开始构建的游戏。 我将学习完成项目所需的一切。

不过为了节省时间...

我正在使用 python 游戏只需要参考网格上的位置值: 所以一个绿色的“松树”方块= *信息*值=树类型/树的硬度/树的生命等......

我的假设可能是错误的,不需要对象?我应该把所有的时间都集中在学习如何使用字典的功能上吗? 对于模拟每回合变化的基于网格的瓷砖游戏,最有效的编码是什么。

这样;一个蓝色方块根据规则集和回合结束时的相邻图块展开。这些瓷砖有附加价值......?即使只是最好的可行技术的名称......一旦我知道我需要学习什么,我就可以学习如何去做......

【问题讨论】:

  • 有点难以理解。您想使用dict 来模拟对象及其字段(即您是否计划使用mydict[field] 而不是myobject.field?如果是这样,最好切换到后者(使用对象)。
  • 虽然这个问题的措辞有些糟糕,但我认为这是一个很好的问题,应该保持开放——为什么我们需要学习整个语言?为什么对象很重要?
  • 我认为提前计划从语言中学习什么是没有多大意义的。只需从您的项目开始,将您的想法编写为代码,手头有几本书(diveintopython.org 是一本优秀且免费的入门书籍),并学习解决当前问题/想法所需的任何内容。如果您是编程新手,您肯定会在学习更好的方法时多次重写您的代码,但我不认为这是一件坏事。
  • @Wylder 为了节省时间我不会回答你的问题,因为我很着急玩游戏
  • 哈哈,我想这证明我什么都不知道,我需要去练习

标签: python oop


【解决方案1】:

任何规模的 Python 项目在没有对象的情况下都会变得难以管理。

是否可以将模块用作对象而不是类?是的,如果你真的想的话。 (在 Python 中,模块就是你所说的单个文件。)

但是,即使您不创建用户定义的类,您仍然需要学习如何使用对象

为什么?因为一切在 Python 中都是一个对象。你需要至少知道如何使用对象,才能了解如何使用 Python 中的内置类型和函数。

在 Python 中,字典对于内部实现的方式非常重要,因此您认为字典可以作为替代方案的直觉很好。

但是字典也是对象,所以你仍然需要学习使用对象,而不是像普通字典那样轻松使用对象。

我的建议?做一个 Python 教程(或三个)。 整件事。甚至网络上的部分,或者你认为不会使用的任何其他部分。您会以意想不到的方式了解您以后最终会使用的语言。

您需要了解元类吗?不,多处理?不可以。但是您需要学习所有核心语言功能,而类和面向对象编程核心语言功能。它对几乎所有现代语言都至关重要,以至于人们甚至不再提及它。

【讨论】:

    【解决方案2】:

    我不同意你应该预先学习所有内容。我认为只在需要时学习语言的某些部分是很好的。

    但在 Python 中,您确实无法避免学习关于对象的一些东西。一切都是对象。 stringint 或任何其他数据类型都是对象。更相关的是,您导入的任何内容都是对象。如果不导入现有功能,您将无法在任何项目中走得很远,因此您必须使用面向对象的界面。

    那么你能不学习如何定义你自己的对象类就逃脱吗?原则上是的。但是了解基础知识是微不足道的,然后您可以根据需要学习其余部分。

    Class MyObject(object):
        pass
    

    简单易学!现在您有了一个自定义类型(class)的对象。您可以通过调用m = MyObject() 创建一个实际对象。此类提供与字典几乎完全相同的功能。但是您可以从这个开始,然后,当您需要它时,您可以添加更多功能(继承、方法……)。如果你在合适的对象时从字典开始,你只会把自己画到角落里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 2021-02-17
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      相关资源
      最近更新 更多