我想在 python 中为一堆与此类似的子类声明类级变量:Python 中的静态类变量。我了解到shared
属性可能是我想要使用的,但我不太确定在哪里使用它。
这是我的情况:我正在为游戏制作一堆不同的角色类型(100+)。所有字符类型都具有相同的属性集,因此我创建了一个包含所有属性和所需内部变量的基类。每个字符类型都有一组不可变的属性,这些属性对于给定字符类型的每个实例完全相同,但在字符类型之间有所不同。我想在子类(每个字符类型一个子类)中包含不可变字符类型属性作为类“变量”,就像上面对 python 示例的答案一样。
关键是我想引用一些属性而不必创建子类的实例。
我的问题是我无法弄清楚需要共享什么才能正确执行此操作,或者我的代码需要如何组织才能实现这一点。我尝试共享最终允许我从子类获取属性的属性,而不仅仅是子类的实例,但是它不会返回我使用Shared
or在子类中分配的属性Shared Shadows
。我想将属性保留在基类中,这样我就不必为每个子类复制和粘贴相同的属性。
这是我的代码的一些示例:
Public MustInherit Class Char
'IMMUTABLE INFORMATION
' CharType Traits
Shared _ID As Integer
Shared _Species As String
Public Shared ReadOnly Property Species As String
Get
Return _Species
End Get
End Property
End Class
Public Class CharCat
Inherits Char
Shared Shadows _Species = "Cat"
End Class
目标是能够输入CharCat.Species
并让它返回"Cat"
。我知道这个例子对于类名是多余的,但对于其他属性却不是。