性別属性がクラスの変数であるため、異なる性別を取得することがない理由は、 PythonがクラスオブジェクトPerson
を作成すると、gender
という値は決して計算されません。 gender
変数をインスタンス属性にする必要があります。つまり、ジェンダーはクラス定義ごとではなく、インスタンスごとに計算されます。例えば:
import random
class Person:
def __init__(self, name):
self.name = name
alias= random.randint(1, 3)
if alias == 2:
self.gender = 'Male'
else:
self.gender = 'Female'
r= Person('rachel')
s= Person('Stanky')
print(r.gender)
print(s.gender)
サイドノートでは
Female
Male
を出力し、私は男性(あなたのタスクのためのより良い選択は性別のリストからランダムに性別を選択しrandom.choice()
を使用することだと思いますかメス):上記の私の例では
from random import choice
class Person:
genders = ('Male', 'Female', 'Female')
def __init__(self, name):
self.name = name
self.gender = choice(Person.genders)
rachel = Person('Rachel')
stanky = Person('Stanky')
print(rachel.gender)
print(stanky.gender)
通知は、Person.genders
はクラス変数です。これは目的上のものです。性別のリストを作成する必要があるのはで、になると、クラスレベルの変数にすることができます。
コード:この問題を解決するには、
property
gender
のために使用することができます。すべてのインスタンスに対して選択をしたい場合は、コードを '__init__'メソッドに入れてください。 –