클래스 멤버 3

Python class의 멤버에 관한 이야기 1

Python에서 클래스 멤버에 관한 이야기입니다.출처:생활코딩 루비와는 다르게 파이썬언어는 두가지 형태가 존재 합니다. 클래스 메소드와 static 메소드입니다. 두가지를 사용하려면 루비와는 다르게 메소드 위에 @staticmethod / @classmethod를 지정해주어야 합니다. 그렇게 되면 클래스 멤버로 소속 되는 거죠. 인스턴스 메소드와는 다른 차이점을 가지게 됩니다. 그리고 중요한 팁! 클래스 메소드의 경우 cls 라는 인자를 넣어주셔야 합니다. 그 외는 기타 다른 언어에서 사용 했듯이 클래스 메소드를 사용하시면 됩니다. 사용 예시는 차차 진행하면서 사용하도록 하겠습니다. 보통 공통된 변수(예를 들어 동일한 객체가 공유해야 하는 값들), 공통된 작업을 해야 하는 경우 클래스 메소드로 지정하여 ..

Ruby class의 멤버에 관한 이야기 2

루비 클래스 멤버 이야기 2 시작합니다.출처:생활코딩 이번에 설명하는 것은 클래스 변수라는 것입니다. 사실 위 코드는 객체가 생성 되면, count 변수라는 녀석이 점점 증가 합니다. 제가 3개의 객체를 생성 했으므로 총 3 이라는 숫자가 count 변수에 속하게 됩니다. 그런데 어떻게 변수가 객체 생성 전에 있는 걸까요 ? 그건 @@ 기호로 정의 되어 클래스 변수이기 때문이죠. 객체 생성 이전에 count 변수는 미리 로드 됩니다. 자바, C 기타 언어들에서 지원하는 static과 같습니다. 다른 언어를 해보셨다면, 금방 아실거라 생각합니다. 그리고 지난 번에 배웠던 클래스 메소드가 있네요 ? ^^ get 메소드형태인데, 루비 언어는 자체적으로 모든 변수(멤버변수, 클래스 변수)는 private 성질을..

Ruby class의 멤버에 관한 이야기 1

오늘 알아 볼 것은 루비 언어에서 클래스 멤버에 관해서 이야기를 하려고 합니다.출처:생활코딩 클래스는 Cs로 정의 되어 있습니다. 그리고 메소드를 살펴보면 좀 특이 합니다. 4라인에 Cs. 라는 클래스 명에 . (dot)이 찍혀있는데 그 뒤로 메소드 명이 붙네요 ? 그런데 7번라인은 일반적인 메소드네요 ? 4라인과 같은 것을 ...바로 클래스 메소드라고 합니다. 이름은 중요하지 않고.. 14행부터 보시면 클래스 사용하는 것을 보시면 더 이해가 쉽습니다. 15번 행은 좀 특이 합니다. 왜냐면 객체로 메소드를 호출하는게 아니라 Cs 클래스명으로 메소드를 호출하는 거죠. 즉, 클래스가 생성된 객체가 아니여도 그 자체로도 Call이 가능합니다. 클래스에 속했기 때문에 클래스 메소드라고 합니다. ( 그에 반해 i..

반응형