在Python2.7中创建类的实例

在Python2.7中创建类的实例,python,class,python-2.7,instance,Python,Class,Python 2.7,Instance,我写了一段代码: class NewsStory(object): def __init__(self, guid, title, subject, summary, link): NewsStory.guid = guid NewsStory.title = title NewsStory.subject = subject NewsStory.summary = summary NewsStory.lin

我写了一段代码:

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
。为什么会这样?是否有一种方法可以修改类内的类定义或函数,以避免新创建的实例覆盖旧实例


谢谢。

您需要在
\uuuu init\uuuu
函数实例变量中生成这些变量,而不是类变量

实例变量如下所示:

self.guid = guid
NewsStory.guid = guid
类变量如下所示:

self.guid = guid
NewsStory.guid = guid

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

您需要在
\uuuu init\uu
函数实例变量中生成这些变量,而不是类变量

实例变量如下所示:

self.guid = guid
NewsStory.guid = guid
类变量如下所示:

self.guid = guid
NewsStory.guid = guid

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

在创建类的实例后调用
\uuuu init\uuuu
方法。第一个参数,按惯例称为
self
,是类的实例<代码>新闻故事是类本身

在代码中,您正在创建类变量。您需要实例变量:

self.guid = guid

创建类的实例后,将调用
\uuuu init\uuu
方法。第一个参数,按惯例称为
self
,是类的实例<代码>新闻故事是类本身

在代码中,您正在创建类变量。您需要实例变量:

self.guid = guid

您正在修改所有对象共用的类变量。您应该做的是在对象中创建这些变量,如下所示

    self.guid = guid
    self.title = title
    self.subject = subject
    self.summary = summary
    self.link = link

您正在修改所有对象共用的类变量。您应该做的是在对象中创建这些变量,如下所示

    self.guid = guid
    self.title = title
    self.subject = subject
    self.summary = summary
    self.link = link