본문 바로가기
반응형

2017/06100

[파이썬&루비] 객체와 모듈 객체와 모듈 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.
[파이썬&루비] 클래스 멤버(Class Member) 클래스 멤버(Class Member) 1234567# rubyrequire 'date'd1 = Date.new(2000, 1, 1)d2 = Date.new(2010, 1, 1) p d1.year()p d2.year()p Date.today()cs 지금까지 배운 변수와 메소드는 '인스턴스 멤버'였다.이번에 배울 내용은 '클래스'에 소속 되어있는 변수와 메소드이다.그렇다면 인스턴스의 멤버와 클래스멤버의 차이점과,왜 이런 차이점을 가지고 있는지에 대해 생각해보자. 먼저 루비에서 날짜에 대한 기능을 가지고 있는 객체를 살펴보자require 로 date객체를 불러온 후 d1이라는 변수에 Date 객체를 이용해서 인스턴스를 만든다.똑같은 방법으로 d2 변수에도 인스턴스를 만든다. 현재 d1에는 2000년 1월 1일.. 2017. 6. 1.
[파이썬&루비] 상속(Inheritance) 상속(Inheritance) 우선 비유를 통해 상속을 알아보자. 우리가 자전거를 만든다고 했을때, 부품들을 조합해서 만들게된다.이렇게 사용되는 부품을 함수라고 생각해보자. 이렇게 함수라는 부품을 조합해서 자전거라는 객체를 만들었다.그리고 이 자전거를 다른사람에게 팔았는데, 팔린 후 새로운 기능을 달고싶어했다.결국, 자전거에 전조등을 달게 되었는데 기존에 깔끔하게 자전거 기능만 담고있던 자전거에전조등의 기능을 추가하면서 새로운 객체가 되었다. 위의 예 처럼 새로운 기능을 추가해서 새로운 객체를 만드는 것.이것을 상속(Inheritance)이라고한다. 123456789101112131415161718#pythonclass Class1(object): def method1(self): return 'm1' c.. 2017. 6. 1.
반응형