본문 바로가기
반응형

2017/06/027

[파이썬&루비] 다중상속(Multiplex Inheritance) 다중상속(Multiplex Inheritance) 기존에 부모 객체로 부터 메소드를 받을 수 있는 것을 상속이라고 하며,여러개의 부모객체로 부터 상속을 받는 것을 다중 상속이라고 한다.객체 지향을 하는 언어들이 모두 다중 상속을 지원 하는 것은 아니며, 대부분은 지원하지 않는다.이유는 죽음의 다이아몬드라는 다중상속의 크나큰 단점때문인데,이 때문인지 몰라도 루비에서는 다중상속을 지원하지 않고 파이썬에서는 지원한다.대신 루비에서는 Mixin이라는 기능을 이용해서 비슷한 목적을 이룰수 있다.따라서 이번에는 파이썬 코드만 보도록 하겠다. 12345678910111213141516171819202122# pythonclass C1(): def c1_m(self): print("c1_m") def m(self): .. 2017. 6. 2.
[파이썬&루비] 객체와 모듈 객체와 모듈 123456789# test.pyimport libobj = lib.A()print(obj.a()) #lib.pyclass A: def a(self): return 'a' cs 이번에는 객체를 모듈화 하는 것에 대해 알아보도록 한다.먼저 클래스에 대한 모듈 파일을 만든다.이렇게 만들어진 모듈 파일을 사용할 파일에서 import 시켜야한다.그리고 나서 모듈 내부의 객체 이름으로 인스턴스를 만들어 준다.결과적으로, 해당 객체 인스턴스가 생성되고, 내부 메소드를 사용할 수 있게된다. 12345678910111213# test.rbrequire_relative 'lib' obj = Lib::A.new()p obj.a() #lib.rbmodule Lib class A def a() return 'a'.. 2017. 6. 2.
[파이썬&루비] 오버라이드(Override) 오버라이드(Override) 오버라이드는 재정의라는 의미를 내포하고 있다.상속이라는 개념에서 상당히 중요한 기능이며, 복잡해진 객체 지향을 좀 더 잘 사용하기 위해 만들진것이다. 오버라이드는 상속 받은 메소드를 재정의 하는 것을 말한다.부모 객체에서 자식 객체로 메소드가 넘어갈 때 이 메소드의 기능을 수정 하기 위해해당 메소드의 코드를 다시 작성하는데 이것이 오버라이드이다. 123456789101112131415161718192021222324# pythonclass C1: def m(self): return 'parent'class C2(C1): def m(self): return super().m() + ' child' passo = C2()print(o.m()) # rubyclass C1 def m.. 2017. 6. 2.
반응형