[解決済み] Python、オブジェクトの作成
2022-05-09 19:54:06
質問
Pythonを勉強しているのですが、クラスとそれをインスタンスで操作する方法のコツを掴もうとしているところです。
この練習問題を理解できないようです。
名前、年齢、専攻を持つ学生オブジェクトを作成し、返す。 入力として与えられたものと同じ
def make_student(name, age, major)
オブジェクトの意味がよくわからないのですが、これらの値を保持する配列を関数の中に作れという意味でしょうか? それとも、クラスを作り、この関数をその中に入れて、インスタンスを割り当てろということでしょうか?(この質問の前に、私は名前、年齢、および専攻を内部に持つ学生クラスを設定するように尋ねられました。)
class Student:
name = "Unknown name"
age = 0
major = "Unknown major"
解決方法は?
class Student(object):
name = ""
age = 0
major = ""
# The class "constructor" - It's actually an initializer
def __init__(self, name, age, major):
self.name = name
self.age = age
self.major = major
def make_student(name, age, major):
student = Student(name, age, major)
return student
なお、Pythonの理念の1つである そのために必要な方法は1つであるべきで、できれば1つだけであるべきです。 しかし、これを実現する方法は複数存在します。また、以下の2つのコードのスニペットを使って、Pythonの動的機能を活用することができます。
class Student(object):
name = ""
age = 0
major = ""
def make_student(name, age, major):
student = Student()
student.name = name
student.age = age
student.major = major
# Note: I didn't need to create a variable in the class definition before doing this.
student.gpa = float(4.0)
return student
私は前者の方が好きですが、後者でも便利な場合があります。たとえば、MongoDBのようなドキュメントデータベースを扱う場合です。
関連
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python string splicing.join()とsplitting.split()の説明
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
python implement mysql add delete check change サンプルコード
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み] Pythonのクラスはすべてobjectを継承すべきなのか?重複