gpt4 book ai didi

python - 在 python 2.7 中创建类的实例

转载 作者:太空宇宙 更新时间:2023-11-04 09:06:06 24 4
gpt4 key购买 nike

我写了一段代码:

class NewsStory(object):
def __init__(self, guid, title, subject, summary, link):
NewsStory.guid = guid
NewsStory.title = title
NewsStory.subject = subject
NewsStory.summary = summary
NewsStory.link = link

def getGuid(self):
return self.guid

def getTitle(self):
return self.title

def getSubject(self):
return self.subject

def getSummary(self):
return self.summary

def getLink(self):
return self.link

当我添加一个实例时:

test = NewsStory('foo', 'myTitle', 'mySubject', 'some long summary', 'www.example.com')

print test.getGuid() 给我 foo,这是正确的。但是,如果我连续创建两个实例:

test = NewsStory('foo', 'myTitle', 'mySubject', 'some long summary', 'www.example.com')
test1 = NewsStory('foo1', 'myTitle1', 'mySubject1', 'some long summary1', 'www.example1.com')

print test.getGuid()print test1.getGuid() 都给了我 foo1 但没有 foo。为什么会这样?是否有一种方法可以修改我的类定义或类内的函数以避免新创建的实例覆盖旧实例?

谢谢。

最佳答案

您需要在 __init__ 函数中创建这些变量 instance 变量,而不是 class 变量。

实例变量如下所示:

self.guid = guid

类变量如下所示:

NewsStory.guid = guid

类变量对于类的所有成员都是相同的,但实例变量对于该类的实例是唯一的。

关于python - 在 python 2.7 中创建类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20737238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com