파이썬 클래스에 format함수 사용하기
조회수 1075회
클래스 안에 함수를 미리 정의해서 언제든 import로 불러와서 사용해볼려고합니다.
원하는 출력값은 "m1 : 연애는 잘 하고 있니? g1 아?"
def romance(self, listener):
print("{}: 연애는 잘 하고 있니? {}아?".format(self, listener))
이런 형식으로 짜봤는데 자꾸 오류가 나오기도하고 import했는데도 함수가 정의되지 않앗다고 뜰때도 있어서 이렇게 질문 올려봅니다
format 함수를 쓰지않는 다른 방법이 있다면 알려주시면 감사하겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
질문이 완전히 이해가 되지는 않습니다.
일단 제가 이해한만큼 작성해봤습니다.
In [1]: class My: ...: def romance(self, listener): ...: print("{}: 연애는 잘 하고 있니? {}아?".format(self, listener)) ...: def __str__(self): ...: return self.__class__.__name__ In [2]: My().romance("아무개") My: 연애는 잘 하고 있니? 아무개아?
- 네 제가 생각했던 소스코드에요! 근대 여기에 __str__ 이 들어가는 이유를 여쭤봐도 될까요? 제가 저 romance 함수 말고 저 클래스에 __init___ 로 일단 기본값은 정해둘려고하는데 str이면 문자열인데.. 제가 잘 모르겠어요... 알 수 없는 사용자 2019.5.5 15:12
- 아...혹시 자바, c# 같은 언어를 해보셨다면 toString 같은 것이라고 이해하면 좋겠습니다. 파이썬에서는 이러한 메서드를 매직 베서드라고 부릅니다. __str__ 의 용도는 print(객체) 을 했을시 객체에 정의된 __str__의 값을 반환하게 됩니다. 즉 위의 코드는 클래스의 객체를 string이 필요한 곳에 대입했을시 이름을 반환하게 한 것입니다. 정영훈 2019.5.5 17:55
- 아아 제가 처음으로 접해서 공부하는 것이 파이썬이여서 기초지식이 좀 부족했네요 친절한 답변 감사드리며 항상 성심성의껏 답변달아주셔서 감사합니다! 알 수 없는 사용자 2019.5.7 22:36
-
안녕하세요.
format 함수가 아닌 다른 방법이라면 fstring을 쓰는건 어떨까요?
s1 = 'A' s2 = 'B' # format # {} 가 두개면 변수도 두개를 넣어줘야 해요! print('{}: 연애는 잘 하고 있니? {}아'.format(s1, s2)) # fstring print(f'{s1}: 연애는 잘 하고 있니? {s2}아')
그리고 self는 매개변수로 생각하시지 마시고
def romance(self, listener1, listener2): print("{}: 연애는 잘 하고 있니? {}아?".format(listener1, listener2))
이런식으로 써야 에러가 안날것 같습니다.
- fstring도 format 과 비슷한 함수인가요? 처음 접해봐서 알 수 없는 사용자 2019.5.5 15:11
- 일단 어떤식으로 작용하는지는 알것같습니다 알 수 없는 사용자 2019.5.5 15:11
댓글 입력