2014-01-21 2 views
0

아래 클래스를 만드는 중이라면 누군가가 인스턴스를 만들고 인수를 전달하는 적절한 방법을 설명해 주실 수 있습니까? 비록 초기에 초기 논의를 통과 할 수는있을 지 모르지만 이것이 작동 할 것으로 보이지는 않습니다. Python에서 클래스 가져 오기 및 할당

Class Course(object): 
    """ 
    Represents a University course 
    """ 

    def _init_(self, name, teacher, description): 
     self.name = name 
     self.teacher= price 
     self.description = description 

    def _str_(self): 
     return "{name} ({desc}): {teacher:}".format(name=self.name, 
       desc=self.description, teacher=self.teacher) 

그래서 내 프로그램에 내가 비록 내가 class = Course() 같은 것을 사용하여 할 인스턴스를 생성하고 싶습니다 : 다음은 클래스의 예입니다.

그러나 동시에 3 개의 변수를 시작하는 방법은 없습니까? class('Math101', 'Dr. Know Nothing', 'Learning is Fun')의 라인을 따라 무엇인가?

그럼 그냥 print class 일 수 있으며 클래스 내에서 정의 된대로 원하는 출력 문자열을 얻을 수 있습니까? 내가 어쩌면 모듈을 가져올 필요가 있거나 클래스를 가지고해야한다면 나에게 혼란 스러울 수도있는 어딘가의 어딘가가 빠져있을 수도있다. 어쨌든 class = Course() 일까? __init__하지 _init_ :

+5

변경'_init_'을 __init__''에 (두 번 밑줄) –

+2

1.. 또한'class'는 언어 키워드이므로 변수 이름으로 사용하면 안됩니다. 그리고 그것이 의미하는 바를 위해 그것을 사용할 때 그것은 소문자 'C'를 가지고 있습니다. – executifs

답변

4

당신은 이중 밑줄와 special methods를 선언해야합니다. course1 = Course(...parameters...) : 객체를 생성 할 때 그리고, 당신은 같은 인자를 전달해야

class Course(object): 
    """ 
    Represents a University course 
    """ 
    def __init__(self, name, teacher, description): 
     self.name = name 
     self.teacher = teacher 
     self.description = description 

    def __str__(self): 
     return "{name} ({desc}): {teacher:}".format(name = self.name, 
       desc = self.description, teacher = self.teacher) 

course1 = Course('Math101', 'Dr. Know Nothing', 'Learning is Fun') 
print course1 

출력 :

Math101 (Learning is Fun): Dr. Know Nothing 

주 :

  • 파이썬 키워드 클래스를 만들려면 class이 아니라 Class이되어야합니다. 파이썬은 키워드에 대해 대소 문자를 구분합니다.

  • priceself.teacher에 할당하면 price이 어디에도 선언되어 있지 않으므로 오류가 발생할 수 있습니다. 나는 오타라고 생각합니다. 대신 self.teacher = teacher을 사용할 수 있습니다.

  • 당신 변수의 이름으로하지 사용 파이썬 키워드 (예약 된 이름), 당신이 한 경우에, 당신이 일 것이기 때문에 문제로 이어질 것이 해당 키워드를 숨기고해야합니다.

    def __init__(self, ...): 
        // whatever 
    
    def __str__(self, ...): 
        // whatever 
    

    을하고 Class 소문자 :

+0

아, 여기 몇 가지 기본을 놓쳤습니다. course1 = Course ("paramaters")를 시도하면 TypeError가 발생합니다. 'module'객체는 호출 가능하지 않습니다. 가져 오기가 누락 되었습니까?많은 감사합니다! – Andy

+0

내가 제공 한 코드를 실행하면이 오류가 발생합니까? 아니면 다른 것을 시도하고 있습니까? – Christian

+0

고정 코드를 사용하고 Course.py로 파일을 저장했습니다. 쉘에서 나는 코스를 가져온 후에이 에러를 얻습니다. 쉘에 '코스'를 입력하면 'Course.py'에서 '모듈'코스 '를 얻을 수 있습니다.>'그래서 나는 더 기초적인 것을 놓치고 있다고 생각합니다. – Andy

0

것부터 먼저, 당신은 당신의 밑줄을 두 배로 할 필요가 class Course 대신 Class Course을.

이제 같은 클래스를 사용할 수 있습니다

course = Course('Math101', 'Dr. Know Nothing', 'Learning is Fun') 
print course