2009-07-22 40 views
6

Tôi khá mới mẻ với thế giới Python và cố gắng tìm hiểu nó.Tạo đối tượng Python

Đây là những gì tôi đang cố gắng đạt được: Tôi muốn tạo một lớp Ô tô, hàm tạo của nó kiểm tra đầu vào để đặt đối tượng carName làm đầu vào. Tôi cố gắng để làm điều này bằng cách sử dụng logic java nhưng tôi dường như thất bại :)

class Car(): 
    carName = "" #how can I define a non assigned variable anyway like "String carName;" in java 
    def __self__(self,input): 
     self.carName = input 

    def showName(): 
     print carName 

a = Car("bmw") 
a.showName() 
+1

Bạn đang sử dụng cuốn sách nào để tự học cho mình Pyt hon? Bạn đã thấy mã như thế này ở đâu? Bạn đã đọc một trang web chưa? Nếu vậy thì cái nào? –

+0

Tôi nghĩ ý của bạn là __init__ thay vì __self__. – riza

Trả lời

14

bắt nguồn từ đối tượng cho new-style class
sử dụng __init__ để khởi tạo các trường hợp mới, không __self__
__main__helpful too.

class Car(object): 
    def __init__(self,input): 
     self.carName = input 

    def showName(self): 
     print self.carName 
def main(): 
    a = Car("bmw") 
    a.showName() 
if __name__ == "__main__": 
    main() 
+0

đang hoạt động, cảm ơn bạn :) –

+0

@Crib, Bạn được chào đón :) – sunqiang

+2

Ngoài ra, bạn nên bắt nguồn từ đối tượng: lớp Ô tô (đối tượng): ... – hughdbrown

1

Bạn không định nghĩa một biến, và bạn sử dụng init và tự. Như sau:

class Car(Object): 
    def __init__(self,input): 
     self.carName = input 

    def showName(self): 
     print self.carName 

a = Car("bmw") 
a.showName() 
1

điều này không chính xác!

class Car(): 
    carName = "" #how can I define a non assigned variable anyway like "String carName;" in java 
    def __self__(self,input): 
     self.carName = input 

các carName đầu tiên là một lớp Variable như thành viên tĩnh trong C++

các carName thứ hai (self.carName) là một dụ biến, nếu bạn muốn thiết lập các biến lớp với hàm tạo, bạn phải thực hiện như sau:

class Car(): 
    carName = "" #how can I define a non assigned variable anyway like "String carName;" in java 
    def __self__(self,input): 
     Car.carName = input 
Các vấn đề liên quan