728x90
반응형
객체와 모듈
1 2 3 4 5 6 7 8 9 | # test.py import lib obj = lib.A() print(obj.a()) #lib.py class A: def a(self): return 'a' | cs |
이번에는 객체를 모듈화 하는 것에 대해 알아보도록 한다.
먼저 클래스에 대한 모듈 파일을 만든다.
이렇게 만들어진 모듈 파일을 사용할 파일에서 import 시켜야한다.
그리고 나서 모듈 내부의 객체 이름으로 인스턴스를 만들어 준다.
결과적으로, 해당 객체 인스턴스가 생성되고, 내부 메소드를 사용할 수 있게된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # test.rb require_relative 'lib' obj = Lib::A.new() p obj.a() #lib.rb module Lib class A def a() return 'a' end end end | cs |
다음으로는 루비 코드이다.
루비도 마찬가지로 module 키워드를 통해 모듈을 생성해준다.
그리고 모듈을 사용할 파일의 위치에서 require 키워드를 통해 로드해 준다.
여기서 A라는 클래스를 가져오기 위해서는 ::(더블 콜론)을 사용해준다.
그리고 인스턴스를 만들어야 하므로 객체 뒤에 new 키워드로 인스턴스를 생성해준다.
루비 코드도 마찬가지로 모듈로 부터 객체를 불러온후 인스턴스가 생성되어 내부의 메소드를 사용할 수 있게된다.
이렇게 모듈로 객체를 분리하게 된다면, 파일 마다의 코드 길이가 짧아지고 가독성이 높아지며,
하나의 모듈을 여러개의 다른 파일에서 사용할 수 있으므로 재사용성이 높아진다.
출처 : 생활코딩, 파이썬&루비
반응형
'개발' 카테고리의 다른 글
[파이썬&루비] 믹스인(Mixin) (0) | 2017.06.02 |
---|---|
[파이썬&루비] 다중상속(Multiplex Inheritance) (0) | 2017.06.02 |
[파이썬&루비] 오버라이드(Override) (0) | 2017.06.02 |
[파이썬&루비] 클래스 멤버(Class Member) (1) | 2017.06.01 |
[파이썬&루비] 상속(Inheritance) (0) | 2017.06.01 |
댓글