用python写文件

用python写文件,python,python-2.7,csv,export-to-csv,Python,Python 2.7,Csv,Export To Csv,我可能会问一个愚蠢的问题。我刚开始学习Python 我有一个简单的python脚本,它用两个方法定义了一个类:add\u-course和write\u-to\u-file: class School: courses=["Math","Physics","Chemical"] def __init__(self): return def add_course(self, course): if course not in self.co

我可能会问一个愚蠢的问题。我刚开始学习Python

我有一个简单的python脚本,它用两个方法定义了一个类:
add\u-course
write\u-to\u-file

class School:
    courses=["Math","Physics","Chemical"]

    def __init__(self):
        return

    def add_course(self, course):
        if course not in self.course:
           self.course.append(course)

    def write_to_file():
        course_file = open('courses.csv', 'w+')
        wr = csv.writer(course_file, delimiter='\t')
        writer.writerow(self.courses)

// create a School instance
school = School()

// add course
school.add_course("test")
school.add_course("test2")
school.add_course("test")

// write course to file
school.write_to_file()

我运行上面的脚本,然后打开courses.csv文件,我没有看到“test”和“test2”,但我可以看到课程“Math”、“Physics”、“Chemical”为什么?

目前您已将课程添加为类级属性,但尝试将其作为实例属性访问,因此,您必须将课程初始化移动到
\uuuuu init\uuuu
方法中,如下面的代码片段所示:

def __init__(self):
    self.courses = ["Math", "Physics", "Chemical"]
您还必须修改
add_course
方法,将项目附加到
self.courses
中,而不附加到
self.courses

def add_course(self, course):
        if course not in self.courses:
           self.courses.append(course)

有关如何以及何时使用每种类型属性的更多解释,请参见SO问题。

目前,您已将课程添加为类级属性,但尝试将其作为实例属性访问,因此您必须将课程初始化移动到
\uuu init\uu
方法中,如下面的代码片段所示:

def __init__(self):
    self.courses = ["Math", "Physics", "Chemical"]
您还必须修改
add_course
方法,将项目附加到
self.courses
中,而不附加到
self.courses

def add_course(self, course):
        if course not in self.courses:
           self.courses.append(course)

有关如何以及何时使用每种类型的属性的更多解释,请参见SO问题。

我在您的代码片段中发现了一些错误,因为您是Python新手,所以考虑发布工作代码-

class School:
    courses=["Math","Physics","Chemical"]

    def __init__(self):
        return

    def add_course(self, course):
        if course not in self.courses:
           self.courses.append(course)

    def write_to_file(self):
        with open('courses.csv', 'w+') as course_file:
        wr = csv.writer(course_file, delimiter='\t')
        wr.writerow(self.courses)
我的变化-

1. def write_to_file(self)
2.if course not in self.courses:
               self.courses.append(course)
3. wr.writerow(self.courses)

我在您的代码片段中发现了一些错误,因为您是Python新手,所以考虑发布工作代码-

class School:
    courses=["Math","Physics","Chemical"]

    def __init__(self):
        return

    def add_course(self, course):
        if course not in self.courses:
           self.courses.append(course)

    def write_to_file(self):
        with open('courses.csv', 'w+') as course_file:
        wr = csv.writer(course_file, delimiter='\t')
        wr.writerow(self.courses)
我的变化-

1. def write_to_file(self)
2.if course not in self.courses:
               self.courses.append(course)
3. wr.writerow(self.courses)

为什么要否决我的问题?请给出一个原因,我不明白,我可能问了一个愚蠢的问题,但我对Python非常陌生。在init方法中定义类中所有方法共享的类变量。我建议您查找python的基本教程classes@Dan,谢谢,你的意思是我应该把
课程
列表放在init方法中吗?是的,就像现在投票最多的答案一样,为什么要投票否决我的问题?请给出一个原因,我不明白,我可能问了一个愚蠢的问题,但我对Python非常陌生。在init方法中定义类中所有方法共享的类变量。我建议您查找python的基本教程classes@Dan,谢谢,你的意思是我应该把
课程
列表放在init方法中吗?是的,就像现在投票最多的答案一样谢谢你指出我的问题。我感激的不仅仅是否决票,这让我看到那些负面的声音时感到无助。@Leem.fin不客气!我希望答案能为你们指出正确的方向)祝你们好运。非常感谢你们指出我的问题。我感激的不仅仅是否决票,这让我看到那些负面的声音时感到无助。@Leem.fin不客气!我希望答案能为你们指明正确的方向)祝你们好运。