質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

266閲覧

【Python / Django】 関数の作り方に不安があります。

azuapricot

総合スコア2341

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/11/13 00:59

いつもお世話になっております。

早速本題に入らせていただきます。

現在DjangoとPythonを使用してWebアプリケーションを作成しているのですが、
JavaやPHPのコーディングをしたことがあっても、Pythonは初めてで関数の作り方の理解がいまいち足りておらず、なんとなくでコーディングしている状態です。

現在のコードが下記のような状態なのですが、一応問題なく動作はしています。


views.py

Python

1class TestView1(TemplateView): 2 def get(self, request): 3 # ... 4 form = valid(self, form) 5 6 def post(self, request): 7 # ... 8 data = get_data(request.session, data) 9 10class TestView2(TemplateView): 11 def get(self, request): 12 # ... 13 form = valid(self, form) 14 15 def post(self, request): 16 # ... 17 data = get_data(request.session, data) 18 19def valid(self, form): 20 # TestView1 と TestView2 の共通バリデーション処理 21 return form 22 23 24def get_data(session, data): 25 # TestView1 とTestView2 の共通データ取得処理 26 return data

classの外に関数を出せば TestView1でも TestView2でも 使えるんだ~便利じゃーんと思ってコーディングしていたのですが、このまま進めても良いものなのか、

それとも共通関数クラスのようなものを作ってインスタンス化して使用するべきなのか、

はたまた関数名の先頭に「_」を付けて**privateメソッド化?**のようなことをするべきなのか・・・

お時間ある方で、pythonの関数周りの知識がある方いらっしゃいましたら、アドバイス等頂けると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

最初のウチは無理してクラスを作らなくてもいいです
直接関数を書けばOK

クラスは、いまのところ知識として覚えておけばいいです。
これからさき行き詰まったときに、もしかしたら解決の道具となったりしますんで、そのときに使えばよろしい

投稿2019/11/13 02:23

編集2019/11/13 02:26
y_waiwai

総合スコア87784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

azuapricot

2019/11/13 04:07

現状で特に問題ないとのことで安心しました! 余裕が出てきたらもう少し詳しく勉強しようと思います!
y_waiwai

2019/11/13 04:14

できること(理解できていること)だけでやればいいんです。 クラスは、ああ、こんな便利な機能があるんだ、と思えるようになるまでとっておきましょうw
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問