【まず1嫁】くだすれPython(超初心者用) その53
レス数が1000を超えています。これ以上書き込みはできません。
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合は、
表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。
Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★
5chの仕様【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】のため、どうにもなりましぇん。
↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇 くだすれPython(超初心者用) その52【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1610137345/
次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ### logging以外は全部str.formatにしてるわ >>952
formatのほうがいいごく少数例をあげてるだけって感じ 3.4(Win XPラスト)のために、それ以降に登場したf文字列のような手法やメソッドは使わないようにしてる
subprocess.run() の代わりにsubprocess.Popen() でシコシコやったり… 脳が1ビットでf-stringかformatしか記憶できない人もいるんですよ python入れたらpipが付いてくるってどこのサイトにも書いてあるけど、コマンドプロンプトでpipのコマンドを打っても認識されない
'pip' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
どうすれば使える? 最初にpython -m pip install novasでインストールしないとダメなんじゃね >>957
windows使ってる?
自分も何故かpipだけ動かなくて焦ったけど、パソコン再起動させたら動くようになった
あとシェルコマンド(正式名称わからん、青い画面)で試してみたら? どこのやつをどのようにしてインストールしたのか
公式windosインストーラー版ならAdd Python 3.x to PATHにチェック入れずにインストールするとpath通ってない >>957
インストール・ルートと、ScriptsディレクトリをPathに加える
%ProgramFiles%\Python39
%ProgramFiles%\Python39\Scripts Windows のPowerShell では、環境変数PATH は、; で区切り。
$env:Path.split( ";" )
Python を含むPATHなら、
$env:Path.split( ";" ) | Where-Object {$_ -like "*python*"}
Linux の環境変数PATHなら、: で区切り。
echo $PATH | tr : "\n" windows公式ならpath通すやつにチェック初めからついてる
わざわざ外すとも思えんので取り敢えず再起動してみよか %USERPROFILE%\AppData\Roaming\Python\Python38\Scripts
これも場合によっては必要(というかこっちをメインにすべき)。
Windowsの場合は、pip使うときに--userを付けないと問答無用でPython本体の方に入れようとするので。 >>964
ユーザー変数に追加するなら
%APPDATA%\Python\Python39\Scripts
でもおk 優しい人おおいな
サンクスコ
結局>>960のとおりにインストールし直した getter(target):
__return eval("{target}_var.get()")
関数内で使われる(ユーザー入力と関係ない)evalですが
やっぱり避けるべき? こういうのは別にいい? クラス変数を変更しようとしたときエラーを吐かせたいんですけど
どうするのがいいでしょうか
現状、
class A:
_# 変更しないでください
_TEST = 100
a = A()
みたいにしています。
できれば、self.TEST=、a.TEST=、A.TEST=
それぞれで変更しようとするとエラーを吐かせられたらなと。
前半2つはセッターでできましたが、結局A.TESTで変更できてしまうし
そもそもクラス変数を変更”してしまうミス”にそこまで注視しないといけないのかな?とも思い
変更しないよう注意喚起・自粛するだけに留めておくのがいいのかどうか迷っています >>968
一番手っ取り早いのはメンバ変数の頭に__(アンダースコアを2つ付けて)
プライベート変数扱いにする
詳しい書き方とかはググると出てくるけど、この辺かな
ぶっちゃけ『注意喚起する』っていうのは大体地雷化するから、正当な方法で実装した方が良い
https://docs.python.org/ja/3/tutorial/classes.html#private-variables
https://www.headboost.jp/python-property/ >>969
なるほどそういう慣習があったのですね ありがとうございました >>971
あ、ほんとうですね
でもうちの場合は中で微妙に処理が異なるので分岐がいるのです(getする範囲が違うとか)
evalないとif連打か辞書使うとかになるけど、それでも回避推奨なのかなと思って 検討すればいいんじゃ
自分で使うだけなら問題ないし
ネットでつながっても隔離されてれば問題ない
検討が面倒なら使わないと決めたほうが
楽な場合もある >>972
getattrとかリフレクション系のビルトイン関数使えば十分じゃない?
tkinterならそれも必要無いと思うけどね >>973
python関係ないけどevalて双方向通信のときにヤバいんでやめましょうね、だけですよね evalを使う言い訳を探すくらいなら
evalを使わない書き方を学んだ方が良い 書けるけどゴチャつくって話でしょ
しかも別に対話しないなら使ってもいいしな どうでもいいけど上見たらくだらない質問の略だったのか
python蛇だからくだを巻いてるスレッドの略やと思ってた print(hoge.data[0][0][0][0])
を実行すると、値ではなく、
<NdArray(()) at 0x1c7b360b960>
が返ってきます。
このインデックスにある値を表示する方法を教えて下さい。
hogeは((1, 1, 8, 8))のNumpy多次元配列とのことで、
このprint文の直前で
hoge.data.zero()
とやっているので、すべての要素はゼロになっているはずです。
うまく表示できると値が「0」と表示されるはずです。 getter(target):
__return getattr(self, [f'{target}_var').get()
__return locals[f'{target}_var'].get()
__return globals[f'{target}_var'].get() getattrって存在すら知らんかった
これ本来はどういう用途のためにある関数なんだ? tkinterならglobalgetvar()使うか
コールバック登録時にクロージャで変数をキャプチャしておけばgetattrは不要 >>982
テスト用に便利
>>> for x in dir(obj):
... print x, ':', type(getattr(obj, x))
情報を得たり
クラス内の全テスト用関数実行するとか
関数の増減気にしないですむ Pythonにおけるgetattr()の利用方法を現役エンジニアが解説 getattrの使いどころって、文字列としてメンバ変数名を扱いたい場合くらいしかない? 業務でリフレクション使ってるコードあったらrejectするけどな
ライブラリは仕方ないとしてギリでアノテーション もう3.10が出るっていうのに、アノテーションを忌避する理由もないだろ。 通常コード内のリフレクションはダメ
ライブラリやアノテーション内のリフレクションはOK
かな このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 94日 12時間 44分 54秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。