提问人:Crystal Element 提问时间:5/20/2023 更新时间:5/20/2023 访问量:37
从具有不同类的类访问实例变量
Accessing instance variables from a class with a different class
问:
正如标题所说,我需要从一个类访问一个实例变量,该类位于不同的文件中,并在该类的 init 方法中定义,并且将是一个布尔值。我已将该类导入到另一个类中,我需要检查该 bool 之前是 True 还是 False。例如,如果我想检查的方法看起来像这样。
def remove_album(self,album_name):
if album_name: #>>how do check to write this if?
return 'Album has been published. It cannot be removed'
我需要删除“album_name”,但在执行此操作之前,我需要检查另一个导入类中的 bool 变量,正如我所说,它在 init 方法中定义为 self.bool=bool,并且该 bool 不会在任何其他类的方法中返回。我该怎么做?
我不知道该尝试什么。我知道这很简单,但我只是不知道该怎么做。
答:
0赞
Val77
5/20/2023
#1
我想这就是你想要的?
class Album:
def __init__(self, *args, **kwargs):
self.bool = False
def publish_album(self):
self.bool = True
class Album2:
def remove_album(self, album):
if album.bool:
return 'Album has been published. It cannot be removed'
foo = Album()
print(foo.bool) # False
foo.publish_album() # sets foo.bool to True
print(Album2().remove_album(foo)) # Album has been published. It cannot be removed
评论
0赞
Hermann12
5/22/2023
但是如果 self.bool = false,它也不会被删除。
0赞
Val77
5/22/2023
@Hermann12对不起,我不太明白你的意思。你能进一步详细说明吗?
0赞
Hermann12
5/22/2023
感谢您的重播。我认为,如果您有 Album 的第二个实例,假设 foo2 和 self.bool = false,函数remove_album应该删除该实例,因为函数名称告诉我们。也许还有别的......不见了。
0赞
Val77
5/22/2023
没关系。“如果您有 Album 的第二个实例,假设 foo2 和 self.bool = false,则函数remove_album应该删除该实例”。好吧,我不确定 OP 想要如何实现删除功能。我所做的只是演示如何使用语法来检查/访问另一个实例的变量。鉴于 OP 没有详细说明他们希望如何编写函数,我想我们可以保持该部分不变。.
评论
.
if instance.bool: ...