如何在python中命名和创建类的多个实例?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python中命名和创建类的多个实例?相关的知识,希望对你有一定的参考价值。

我是编程和学习OOP的新手。我想创建一副扑克牌,所以我创建了一个名为Card的类,其中包含number属性和suit属性。然后我想创建一个包含该类的52个实例的列表来制作套牌。我也希望他们每个人都被命名为“2_spades”,“3_spades”,“4_spades”等,但显然不想手动完成。

当我使用for循环创建列表并打印列表时,它打印了实例的内存位置,这是可以理解的,因为我没有命名实例。所以我试图将str dunder方法添加到类中,该类返回实例的数字和套装。但它没有用。

class Card:
    def __init__(self, number, suit, trump='not the trump'):
        self.number = number
        self.suit = suit
        self.trump = trump

    def make_trump(self):
        self.trump = 'the trump'

    def remove_trump(self):
        self.trump = 'not the trump'

    def __str__(self):
        return f'{self.number} of {self.suit}'


suits = ['spades', 'hearts', 'clubs', 'diamonds']
deck = []
for Suit in suits:
    for i in range(13):
        deck.append(Card(i. Suit))

print(deck)

当我打印甲板时,它为每个人提供了记忆位置。

如何创建类卡的多个实例并通过number_suit或self.number_self.suit命名每个实例?

以上是关于如何在python中命名和创建类的多个实例?的主要内容,如果未能解决你的问题,请参考以下文章

python基础 13 类命名空间于对象实例的命名空间,组合方法

Python()-类命名空间和对象/实例命名空间

为啥我不能创建在与类定义相同的命名空间中定义的 C++ 类的实例?

c++ 如何在构造函数中启动一个线程,从命名管道读取数据?

Python面向对象基础

python之路——24