具有属性但没有方法的类

纳税人金钱

我是一个初学者,但是我想用python实现棋盘游戏(奥尔良)。我为游戏状态创建了一个类,为每个玩家创建了一个类。我曾考虑过为每种类型的动作空间创建一个类,并为每个玩家创建动作空间的实例,因为每个玩家都有一套共同的动作空间。这些动作空间类中的每一个都有一些通常在__init__()方法中设置的属性但是,他们没有其他方法。这是对类的很好利用吗,还是应该只更改代码以使用许多单独的变量?我将它们归类的原因是为了使变量的命名更加直观。下面的代码提供了一个player类和两个动作空间类的示例:

class Player:

    def __init__(self, start_characters, name):
        // other attributes
        self.farmhouse = Farmhouse()
        self.village = Village()

class Farmhouse:

    def __init__(self):
        self.boatman = False
        self.craftsman = False

class Village:

    def __init__(self):
        self.farmer = False
        self.boatman = False
        self.craftsman = False

然后,游戏状态类将具有将玩家实例作为参数的函数,以测试动作空间是否具有触发该动作的每个适当要求。

程序化

这对可读性有好处,并且定义本质上将相关数据分组在一起的类没有问题。例如,您甚至可能想要这样做以减少传递给函数所需的参数数量。至于只有一种方法,如果这不是真的关于数据的话,我会说定义函数。这里不是这样。

您有什么选择?可能是设置__init__包含设置名称。幕后并没有太大区别。

我更喜欢您选择的结果访问语法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

类没有方法'urldecode'

没有方法的抽象类?

错误:既没有属性...也没有方法之一...不存在并具有公共访问权限

具有许多私有方法的Java测试类

没有方法的类是否有特殊名称?

具有方法参数超类的接口实现

如何判断类是否具有方法__call__?

具有方法重载的泛型匿名类

Rails:重命名类后没有方法错误

OpenCPU:没有方法asJSON S3类

打字稿:映射类型:没有方法的接口类

没有方法的类应该进行测试吗?

获取类中所有方法的属性列表

属性中没有方法错误#new

没有方法的接口

如何测试私有函数或具有私有方法,字段或内部类的类?

React类组件具有属性,但Typescript表示没有

为什么子对象调用具有 main 方法的超类的私有方法?

当类具有某些虚拟方法时,它的所有方法都使用vtable吗?

如何在Ruby中显示没有祖先方法的类的所有方法?

如何使用Groovy获取没有继承方法的类的所有方法名称?

使用装饰器强制类的所有方法具有特定的签名

Python中的SimpleITK.ImageFileWriter没有方法“ SetImageIO”,但C ++文档说它具有

没有方法的类中是否需要私有字段?

如何列出一个类的所有字段(没有方法)?

TestNG没有执行类中存在的所有方法

MATLAB未显示有关用户创建的类私有方法和属性的帮助

ActiveRecord对象的属性没有实例变量,只有方法吗?

抽象类和具有所有方法抽象的类之间有什么区别?