私は医療用フォームクラスを持っています。このフォームは、男性と女性の両方に与えられます。私はクラスをインスタンス化するときに男性と女性を区別する必要はありません。性別にかかわらず同じ方法を具体化し、性別にかかわらず同じ質問をすることができればいいと思います。しかし、それを実現するプログラムは、男性が妊娠しているかどうかを尋ねるのは馬鹿ですが、その質問をしないでも、それは無関係な質問ではなく、それをスキップして印刷します。 これは私が持っている基本的なコードです。Python 3.4継承
if male:
form = medForm("Bill")
form.MedHistory.isSmoking()
if female:
form = medForm("Sarah")
form.MedHistory.isSmoking()
form.MedHistory.isPregnent()
class maleSection():
def isSmoking(self):
#some code here exactly same as female, so create a base class later
class femaleSection():
def isPregnent(self):
#some code here
def isSmoking(self):
#some code here exactly same as male, so create a base class later
class medForm(maleSection, femaleSection):
def _init_(self, nameOfCustomer):
#At the moment not sure if I need anything here
これらの2つのif文は醜いです。これを処理する最良の方法は何ですか?また、私はスーパーを使用して聞いたことが難しいかもしれないので、可能であれば私はスーパーを使用しないようにして、それを簡単に保ちたいと思います。これはWin7、Python 3.4で実行されています。 sys.version_info(メジャー= 3、マイナー= 4、マイクロ= 3、リリースレベル= '最終'、シリアル= 0)
ご協力いただきありがとうございます。
最初に:もし可能であれば、Python 3.6をインストールしてください。古いバージョンを使う理由はありません。 – jsbueno
Secon: 'super'を使うのは難しいことではありません。それを避けようとしないでください。 – jsbueno
助けてくれてありがとうございますが、私はアップグレードできません。あなたが私の問題を解決する方法についてスーパーに例を挙げることができれば、本当にうれしいでしょう。 – usustarr