2017-11-25 2 views
0
class Drinks: 
    def __init__(self): 
    self.drink = ['Coke'] 
    self.count = 0 
    self.alcohol_level = [1] 
def main(): 
    Drinks().alcohol_level.append(89) 

수준 목록에 추가하고 싶습니다. 이동 방법은 확실하지 않습니다.클래스에 목록에 항목 추가하기

Drinks().alcohol_level.append(89) 

하지만 분명히 올바른 아니다 : 나는 무엇을 시도했다

이다. 어떤 도움을 주셔서 감사합니다. 감사!

+0

'** D ** ef main() :'?? – eyllanesc

+0

개체를'level' 목록에 추가하려고합니까, 아니면'level' 클래스 목록 자체에 문자열을 추가하려고합니까? – Miket25

+0

@eyllanesc 죄송합니다, 소문자로되어 있어야합니다. 고쳤다. – Gennaro

답변

4

먼저 클래스 정의가 좋습니다. 잘 했어!

나쁜 소식은 제 생각에 클래스의 작동 방식에 대한 오해입니다.

Drinks()Drink 유형을 반환하는 생성자입니다.

Drink 유형의 인스턴스를 만들려면 do d = Drinks()을 사용합니다. d.alcohol_level은 이제 [1]입니다.

질문에 대한 대답을 원하시면 d.alcohol_level.append(2)으로 전화하십시오.

d.alcohol_level[1, 2]

당신이 b = Drinks()을 만든 경우 alcohol_level 인스턴스 변수와 각 인스턴스는, 또는 Drink 생성자를 호출하기 때문에, b.alcohol_level[1]입니다, 당신의 클래스에 정의 된 고유의 특성을 가진 Drink 객체를 생성 지금이다.

def main(): 
    d = Drinks() 
    d.alcohol_level.append(2) 
    # print(d.level) -> [1, 2] 

if __name__ == '__main__': 
    main() 

원래 생각은 가까이 있지만 라인 Ditto().level.append(2) 후 그 수정 동감 인스턴스에 대한 참조를 잃게됩니다.

당신은 숙제를하는 것에 상응하는 파이썬을 만들었고 즉시 그것을 굽습니다.