2011-10-29 21 views
5

Tôi hiện đang có các chức năng dưới đây trong mã của tôi: -ghi vào tập tin mở trong Chức năng thứ hai (Python)

def openFiles(): 
    file1 = open('file1.txt', 'w') 
    file2 = open('file2.txt', 'w') 

Những gì tôi đang hy vọng có thể làm bây giờ là, trong một phương pháp thứ hai là để viết thư cho mở tập tin. Tuy nhiên, bất cứ khi nào tôi cố gắng ghi vào các tập tin bằng cách sử dụng ví dụ "file1.write (" hello ")", một lỗi được trả về thông báo cho tôi rằng "global variable 'file1' is not defined". Tôi đã thử tuyên bố 'file1' như là một chuỗi ở đầu mã của tôi, nhưng rõ ràng, vì nó không phải là một chuỗi nhưng một đối tượng, tôi không chắc chắn làm thế nào để ghi vào nó.

Mọi đề xuất? Tôi muốn một số chức năng để có quyền truy cập vào các tập tin do đó tại sao tôi muốn một chức năng riêng biệt mà mở chúng.

Cảm ơn

Edited để đại diện cho một lớp

class TestClass: 
    def openFiles(): 
     file1 = open('file1.txt', 'w') 
     file2 = open('file2.txt', 'w') 

    def write_to_files(): 
     ???????? 
+0

Bạn sẽ có thể phải thực hiện một lớp hoặc gửi thư cho các tập tin bên trong hàm bạn đang sử dụng để mở chúng. – Griffin

+0

Câu hỏi gốc được chỉnh sửa để chứa một lớp học. Làm thế nào bây giờ tôi sẽ tham khảo các đối tượng trong lớp học? – thefragileomen

Trả lời

9

Bạn có thể sử dụng từ khoá toàn cầu python như hình dưới đây.

def openFiles(): 
    global file1 
    global file2 
    file1 = open('file1.txt', 'w') 
    file2 = open('file2.txt', 'w') 

def writeFiles(): 
    file1.write("hello") 

openFiles() 
writeFiles() 

Tuy nhiên, tôi khuyên bạn nên sử dụng lớp học này thay thế. Ví dụ.

class FileOperations: 
    def open_files(self): 
     self.file1 = open('file1.txt', 'w') 
     self.file2 = open('file2.txt', 'w') 

    def write_to_files(self): 
     self.file1.write("hello") 

Sau đó bạn có thể làm:

>>> fileHandler = FileOperations() 
>>> fileHandler.open_files() 
>>> fileHandler.write_files() 
+0

Câu hỏi gốc được chỉnh sửa để chứa một lớp học. Làm thế nào bây giờ tôi sẽ tham khảo các đối tượng trong lớp học? – thefragileomen

+0

@thefragileomen Tôi cũng đã cập nhật câu trả lời của mình với ví dụ về lớp học. – solartic

+0

Rất cám ơn. Đánh giá cao. Sẽ kiểm tra ngay bây giờ ... – thefragileomen

Các vấn đề liên quan