2014-04-23 17 views
14

Tôi đã thực hiện một số hướng dẫn về Python và tôi biết cách xác định các lớp, nhưng tôi không biết cách sử dụng chúng. Ví dụ tôi tạo sau tập tin (car.py):Tạo đối tượng từ lớp trong tập tin riêng

class Car(object): 
    condition = 'New' 
    def __init__(self,brand,model,color): 
     self.brand = brand 
     self.model = model 
     self.color = color 

    def drive(self): 
     self.condition = 'Used' 

Sau đó, tôi tạo ra một tập tin (Mercedes.py), nơi tôi muốn tạo một đối tượng Mercedes từ xe lớp:

Mercedes = Car('Mercedes', 'S Class', 'Red') 

, nhưng tôi nhận được một lỗi:

NameError: name 'Car' is not defined 

Nếu tôi tạo ra một thể (object) trong cùng một tập tin mà tôi tạo ra nó (ô tô), tôi không có vấn đề:

class Car(object): 
    condition = 'New' 
    def __init__(self,brand,model,color): 
     self.brand = brand 
     self.model = model 
     self.color = color 

    def drive(self): 
     self.condition = 'Used' 

Mercedes = Car('Mercedes', 'S Class', 'Red') 

print (Mercedes.color) 

nào in:

Red 

Vậy câu hỏi là: Làm thế nào tôi có thể tạo ra một đối tượng từ một lớp học từ tập tin khác nhau trong cùng một gói (thư mục)?

+2

Bạn có nhận thấy rằng 'điều kiện' là thuộc tính * lớp *, được chia sẻ bởi tất cả các phiên bản không? – jonrsharpe

+0

@ jonrsharpe, Để tách biệt cho từng đối tượng, tôi nên đổi tên nó thành self.condition? – Trenera

+1

Có, đặt nó là 'self.condition = 'New'' * bên trong *' __init__'. – jonrsharpe

Trả lời

29

Trong Mercedes.py của bạn, bạn nên nhập khẩu các tập tin car.py như sau (miễn là hai tập tin đang trong cùng thư mục):

import car 

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

Mercedes = car.Car('Mercedes', 'S Class', 'Red') #note the necessary 'car.' 

Hoặc, bạn có thể làm

from car import Car 

Mercedes = Car('Mercedes', 'S Class', 'Red')  #no need of 'car.' anymore 
+0

Cảm ơn, tôi sẽ chấp nhận câu trả lời sau khi tôi được phép (trong 10 phút) – Trenera

+0

@ViharChervenkov, Cảm ơn. Mừng vì tôi có thể giúp. – sshashank124

+0

nếu chúng là _not_ trong cùng một thư mục thì sao? cảm ơn! –

0

Chỉ cần sử dụng lệnh nhập trong tệp Mercedes của bạn. Có phần giới thiệu tốt về việc nhập bằng Python trong here

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