前提・実現したいこと
スクールの課題です。
以下のクラスを定義しています。
class Person(object): def __init__(self, name, age, gender): self._name = name self._age = age self._gender = gender self._friend = None def __eq__(self, person): return str(self) == str(person) def __str__(self): if self._gender == 'M': title = 'Mr' elif self._gender == 'F': title = 'Miss' else: title = 'Ms' return title + ' ' + self._name + ' ' + str(self._age) def __repr__(self): return 'Person: ' + str(self) def get_name(self): return self._name def get_age(self): return self._age def get_gender(self): return self._gender def set_friend(self, friend): self._friend = friend def get_friend(self): return self._friend
クラスの「外部で」、インスタンスの「名前」、「年齢」、友人がいる場合「友人」の属性をプリントする
関数を定義する必要があります。
発生している問題・エラーメッセージ
このように関数を書きました。
def print_friend_info(person): n = person.get_name() a = person.get_age() fr = person.get_friend() print(n) print(a) if fr: fr_is = fr._name print(f'Friends with {fr_is}')
しかし、「友人」を書き出すパートのみなぜか上手く認識されません。
if fr: 以降が該当箇所なのですが、何か穴等ありますでしょうか?(カバーできていないパターン等)
該当のソースコード
python
試したこと
こちらのコードも試しました。同じく、「友人」を書き出すパートのみ認識されません。
def print_friend_info(person): print(person._name) print(person._age) fr = person.get_friend() if fr: print(f"Friends with {fr._name}")
微妙に違う文法で何通りか試してみましたが、どれも同じく「友人」を書き出すパートのみ駄目でした。
補足情報(FW/ツールのバージョンなど)
バージョン: python3.9
IDE: IDLE(Python3.9 64-bit)
関数はクラスとは独立しており、また上記のコード以外の呼び出しコードや枠組み等といったものは使用しておりません。
自分の書いたprint_friend_info関数でカバーできていないシチュエーションがあれば教えてください。
(インプットは正しいという前提で)
回答2件
あなたの回答
tips
プレビュー