Python dataclasses.dataclass 数据结构:类内定义 vs 类外定义
当使用 'dataclasses.dataclass' 创建数据结构时,您可以选择将其放在类内或类外,具体取决于您的需求和代码结构。
通常,如果这个数据结构是专门为一个类设计的、与该类紧密相关的,并且只在该类内部使用,那么将其定义为该类的内部数据类是合适的。这样可以将数据类与主类紧密关联,并且更好地表示它们之间的关系。
示例代码:
from dataclasses import dataclass
class MyClass:
@dataclass
class MyDataClass:
value1: int
value2: str
def __init__(self):
self.data = self.MyDataClass(42, 'Hello')
def print_data(self):
print(self.data)
my_object = MyClass()
my_object.print_data()
在上述示例中,我们在 MyClass 类内部定义了一个数据类 MyDataClass,并使用 dataclasses.dataclass 装饰器为其添加了数据类的特性。然后,在 MyClass 类的 __init__ 方法中创建了一个 MyDataClass 类的实例,并将其存储在 self.data 属性中。print_data 方法用于打印存储的数据。
如果数据结构不是特定于某个类的,或者在多个类中都需要使用,那么将其定义为独立的类外部数据类是合适的。
示例代码:
from dataclasses import dataclass
@dataclass
class MyDataClass:
value1: int
value2: str
class MyClass:
def __init__(self):
self.data = MyDataClass(42, 'Hello')
def print_data(self):
print(self.data)
my_object = MyClass()
my_object.print_data()
在上述示例中,我们将数据类 MyDataClass 定义为独立的类外部数据类,并在 MyClass 类中使用它。其他类也可以使用 MyDataClass 类,因为它是一个独立的数据结构。
无论您选择将数据类放在类内还是类外,都可以根据实际需求来确定最佳的组织方式。这取决于数据类与主类之间的关系和代码的整体结构。
原文地址: https://www.cveoy.top/t/topic/jnt 著作权归作者所有。请勿转载和采集!