본문 바로가기
[Python & Ruby]

[Python & Ruby] 객체 지향 프로그래밍

by Hevton 2020. 12. 22.
반응형

자바에서와는 달리 Python & Ruby에서는 객체라는 의미의 포용 범위가 더 넓은 것 같다.

a = 'hello' // 이것도 객체고
a = ['hello', 'you'] // 이것도 객체라고 한다.
a = String.new('hello') // 그리고 이것도 객체

자바와 다르다 보니 상식선에서 이해가 잘 되지는 않지만.. 저번에 정수값에 점을 찍어서 객체형식으로 쓰는 것을 보니 확실히 자바에서의 객체 의미보다 포용 범위가 더 넓은 것 같다. 아니면 그냥 애초부터 모두 객체로 쳐주는 의미로 바라봐야 겠다.

 

예를들면, 내가 자바에서 알던 문자열 선언 방식도 위 처럼 두 가지가 있는데

String a = "STRING";
String a = new String("STRING");

위는 그냥 문자열 리터럴 값이고 아래가 객체다.

 

 

여튼 자바에서의 객체와 파이썬/루비에서의 객체 포용범위는 쫌 다르다는 것.. 덕분에 헷갈리게 생겼다 ㅋㅋ

왜 저렇게 할까 ㅜ 그냥 String.new('hello')만 객체로 하지..확실히 대중성이 있는 언어로 발돋움한 만큼 편의를 많이 강조한 것 같다.

이래서 내가 배우긴 싫었는데 ㅜ..ㅜ

 

아무튼 파이썬/루비에서는 "자바에서보다 객체 해당의 포용 범위가 넓다 또는, 애초에 모두 객체다" 라고 알고있으면 자바와 헷갈리지 않겠다.

 

Ruby :

name = 'Hevton';
# name = String.new('Hevton') 위와 동일.

puts(name.reverse())
puts(name.upcase())
puts(name.size())

 

Python :

name = 'Hevton';

print(name.upper())
print(name.__len__())

 

참고

opentutorials.org/

ahracho.github.io/posts/python/2017-05-01-everything-in-python-is-object-integer/

반응형