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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

6回答

174閲覧

実装(解答者の理解の妨げになったので挙動から変更)と役割、どちらが関数名として適切なの?

退会済みユーザー

退会済みユーザー

総合スコア0

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

2クリップ

投稿2018/02/06 09:52

編集2018/02/11 04:52

2018/2/11
区切りの為に書きます
この投稿にもう私が投稿するころはありません
皆さん質問ありがとうございました
回答者の方々どうしで議論するために使ってください

よろしければこちらのアイデアについて
ご意見がうかがえると嬉しいです
https://togetter.com/li/1198124

学業を収めることが卒業するために必要なんだから
趣味よりもそちらを最優先したほうがいいのではないかと思いました。
なので、こちらでの質問の返信は一時停止します。
せっかく答えてくださったのに、すぐに返信できずすみません。

前提・実現したいこと

twitterで実況しながらオノマトペをcsvにして作成するプログラムを作ろうとしています
で、オノマトペを生成する関数は作ったんですが、その関数名のつけ方に自信がないのです。

http://twilog.org/ys68472149/date-180206/asc
Ctrl+Fで以下を検索して

posted at 08:32:21

で作り始めたところからやっています
最新の状況は

https://twitter.com/ys68472149

でわかります

該当のソースコード

python

1 2 3def dble_aft_join(fr,ba): #gen_onomatope(fr,ba)のほうがいいか? 4 return (fr+ba)*2 5 6 7

試したこと

すいません・・・
まだ何も試していません

補足情報

引数の命名の妥当性とか
この省略はいいのか、とかそういうのも良ければお願いします

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

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

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

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

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

guest

回答6

0

ベストアンサー

外部から呼び出して使う物は、役割で、内部のサブルーチン的な物は、挙動ですかね。

dble_aft_joinが、double_after_joinという意味なら略しません。そもそもこういう名前は付けない気がします。

投稿2018/02/06 12:24

otn

総合スコア84555

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

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

0

特定の企業のネーミング規約の範囲内で、みたいない制限がない限り、あまりネーミングのルールはないでしょう。
関数の一覧を見たときなどに、その関数の機能を端的に理解できて、その関数を使うのがいちばん良いと判断できるネーミングにできるのがいちばんです。その関数の使い易さを端的に説明できるドキュメントもあると鬼に金棒です。

投稿2018/02/06 10:05

Orlofsky

総合スコア16415

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

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

0

個人的な意見です。

「オノマトペを生成する」という機能(役割)を表明したい場合はgen_onomatopeあるいはcalc_~とします。
数学的操作(挙動)を強調、表明したい場合はdouble_after_joinとします。

「挙動」という言葉から私は実装を連想します。
そして関数の命名においては実装を隠蔽したいという意識が働きます。(あとで変えることがあるかもしれないので)
よって役割をもとに命名することが好みです。
あとfr,baが何か分かるようにします。(コメントを書くか、引数名を長くする)

追記。
私は忘れっぽいので、そもそもこの関数何に使うんだっけ?ということも忘れたりします。
で、こんな感じに引数と戻り値についての具体例を記載したりします。

Python

1# 「オノマトペ」を生成する 2# fr : 接頭文字列「チャカ」 3# ba : 接尾文字列「ポコ」 4# 戻り値:「チャカポコチャカポコ」 5def gen_onomatope( fr, ba): 6 return (fr+ba)*2 7 8print( gen_onomatope('チャカ','ポコ')) # チャカポコチャカポコ

投稿2018/02/06 11:23

編集2018/02/06 12:51
can110

総合スコア38266

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

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

can110

2018/02/06 12:07

すみません。提示されたコードのみを見ての回答です。 んで、コード書いた本人すら数か月すると書いた内容、なぜそういう命名をしたかを完全に忘れたりするので、コメントなりは必要かと感じます。
退会済みユーザー

退会済みユーザー

2018/02/06 14:11

これに対する回答じゃないですけど 誤解を招いたみたいなんでタイトル少し変えてみます
guest

0

関数の要件と用途がよくわからなかったのですが、
まず質問文の関数は引数から値を生成する関数ですか?それとも引数を元に変換する関数ですか?
どちらの関数でしょうか。

以下は個人的な感想です!

  1. 関数名の先頭にdble_やgen_とするのではなく、まずクラス化してインスタンス関数としましょう。
  2. fr,baは意味のある引数名に変更しましょう。そして:で型ヒント情報を付けましょう。戻り値も同様です。

2018年02月06日追加
Can110さんの回答をみてやっとやりたいことが分かりました。
関数名はそのままですが、私が書くならこう書き換えます。

Python

1# -*- coding: utf8 -*- 2 3 4def dble_aft_join(front: str, back: str='', repeat: int=2) -> str: 5 """ 6 :param front:接頭語 7 :param back:接尾語 8 :param repeat:繰り返し回数 9 :return:オノマトペ 10 """ 11 return (front + back) * repeat 12 13 14def main() -> None: 15 tokens =[ 16 dble_aft_join('ごろ', 'ごろ'), 17 dble_aft_join('わく') 18 ] 19 for i in tokens: 20 print(i) 21 22 23if __name__ == '__main__': 24 main()

投稿2018/02/06 11:28

編集2018/02/06 13:48
umyu

総合スコア5846

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

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

0

私ならこうします。

python

1def concat_x2(fr, ba): 2 """Returns concatenated arguments with doubled.""" 3 return (fr + ba) * 2

関数名は単体で、その関数の入出力(と副作用)が想像できるほうが好みです。

投稿2018/02/06 11:01

YouheiSakurai

総合スコア6142

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

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

0

この関数が他の同じぐらいの抽象度な関数と組み合わせて、より抽象な関数になるならこのままでいいです

この関数をユーザーが使うなら少なくとも私は何する関数なのか全くわからないのでやめたほうがいいです

要するに、モジュールの意図する抽象度に合わせて名前をつけます

ちなみにfr/baに違和感を覚えたので
複合語の前後は英語でどう表現するのか調べたところfirst/second elementが適当な感じですね

投稿2018/02/06 10:53

編集2018/02/06 13:36
ozwk

総合スコア13521

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問