🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

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

Python

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

Q&A

解決済

1回答

1402閲覧

Python 引数について

raspypy

総合スコア247

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2020/12/15 02:19

##やろうとしていること

Raspberry Piにシャットダウン機能を追加しようとしています。

こちらのページを参考にして、シャットダウン機能を追加することができたのですが、
プログラムで分からないことがあります。
http://altmo.html.xdomain.jp/src_02/2020_0080/00.html

##わからないこと
shutdown関数の引数として「channnel」を指定していますが、
実行するときは、引数を指定していません。
なぜ「channel」と指定する必要があるのでしょうか。

python

1def shutdown(channel): 2 os.system("sudo shutdown -h now") # shutdownのshellコマンドを持つ関数の定義 3 4GPIO.add_event_detect(4, GPIO.FALLING, callback = shutdown, bouncetime = 2000)

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

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

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

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

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

guest

回答1

0

ベストアンサー

なぜ「channel」と指定する必要があるのでしょうか。

GPIO.add_event_detectに渡すコールバックは、1つの引数を受け取れる必要があるからです。

投稿2020/12/15 02:26

maisumakun

総合スコア145975

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

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

raspypy

2020/12/15 02:44

早速の回答ありがとうございます。 掲載したコードの場合、引数「channel」に何も指定していませんが、 GPIO.add_event_detect内のcallbackで指定する関数には、引数を指定する必要があるから、 shutdown(channel)としているのでしょうか? 「1つの引数を受け取れる必要があるから」というところが良く理解できておりません。 すみませんが、コメントいただけると助かります。
maisumakun

2020/12/15 02:47

コールバックが引数を渡してくるので、引数を取らないメソッドをコールバックに指定するとエラーになります。 たとえコールバック内で使わなくても、渡したものを受け取る必要だけはあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問