[過去ログ] 【まず1嫁】くだすれPython(超初心者用) その53 (987レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(2): デフォルトの名無しさん [sage] 2021/03/16(火) 07:19:44 ID:PfTIXkDh(1) AAS
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合は、
  表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★
5chの仕様【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】のため、どうにもなりましぇん。
↓等の、いわゆるコードうp用サイトに貼ってこいください。
https://techiedelight.com/compiler/  Run Code機能あり。
http://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
http://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
http://pastebin.com/     まずまずシンプル。
http://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ http://python.rdy.jp/wiki.cgi

〇前スレ〇 くだすれPython(超初心者用) その52【まず1嫁】
2chスレ:tech

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
888: デフォルトの名無しさん [sage] 2021/06/04(金) 05:45:42 ID:YFLVaXSQ(1) AAS
>>875
https://qiita.com/ksato9700/items/2cd85bec2ae4c1785238
889: デフォルトの名無しさん [] 2021/06/04(金) 06:18:08 ID:cRyUwDm7(1) AAS
>>886
とりあえずオライリーの魚のやつが機械学習の入口に最適かなと思う
890: デフォルトの名無しさん [sage] 2021/06/04(金) 07:42:16 ID:Ylsj9/zX(1) AAS
流石に古文書だろう。学校で習うなら良いかも知れないが
891: デフォルトの名無しさん [sage] 2021/06/04(金) 09:20:15 ID:B2Hze9b2(1) AAS
機械学習は理論むずいからな
最低限統計学と線形代数を講義で習ってないなら理論から入るよりもコードで動かしながらやった方がいいと思う
その場合本よりもネット上にある機械学習体験コースかな
892
(1): デフォルトの名無しさん [] 2021/06/04(金) 09:58:48 ID:XSEjTbdI(1) AAS
>>886
数学
893
(1): デフォルトの名無しさん [sage] 2021/06/04(金) 10:41:39 ID:+b2D6xvw(1/3) AAS
>>881
漏れは、Ruby on Rails で、
Windows 10, WSL2, Ubuntu 18.04, Docker でも、環境構築できるようになった。
VSCode の拡張機能、Remote WSL, Remote Container も使う

Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

これでも依存関係が難しいのなら、Docker Compose を使う
894: 893 [sage] 2021/06/04(金) 10:54:12 ID:+b2D6xvw(2/3) AAS
Ubuntu 18.04, anyenv では、~/.bashrc に、

export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"

これだけで全言語、/home/ユーザー名/.anyenv/envs/ 以下に入る

which ruby
/home/ユーザー名/.anyenv/envs/rbenv/shims/ruby

which node
/home/ユーザー名/.anyenv/envs/nodenv/shims/node

これでも依存関係が難しいのなら、Docker Compose が良いかも
895: デフォルトの名無しさん [sage] 2021/06/04(金) 11:36:03 ID:Y9WRHQwM(1) AAS
>>892
ほんと、これだよね。
896: デフォルトの名無しさん [sage] 2021/06/04(金) 16:18:44 ID:tVKHcgFl(1/5) AAS
CPythonのソースコードを一部ブログで引用したいです
公式の引用ルールを調べましたが特に定義は出てきませんでした
海外のブログなどはがっつりソースコードを記事にのせてるところもあります
一部分の引用なら特に問題ないという認識なんですが、この認識で問題ないでしょうか?
897
(1): デフォルトの名無しさん [] 2021/06/04(金) 16:50:41 ID:GwKOpW33(1) AAS
引用ルールってなに?ライセンス以外にそういうのがあるの?
898
(1): デフォルトの名無しさん [sage] 2021/06/04(金) 16:58:05 ID:tVKHcgFl(2/5) AAS
>>897
引用についての公式の見解のことです
調べましたが出てきませんでした
スタックオーバーフローなどのQ&Aも出てきません
たぶん引用が当たり前すぎるので、誰も質問もしていない感じでしょうか?
899
(1): デフォルトの名無しさん [sage] 2021/06/04(金) 17:05:10 ID:xxsePxeY(1) AAS
>>898
「著作物/引用ルール」でググれ
一般常識の範囲だから、文化庁か法律家のサイトがおすすめ
900: デフォルトの名無しさん [sage] 2021/06/04(金) 17:21:50 ID:tVKHcgFl(3/5) AAS
>>899
回答ありがとうございます
901: デフォルトの名無しさん [sage] 2021/06/04(金) 17:23:00 ID:+b2D6xvw(3/3) AAS
MIT などの、ライセンスが付いていないの?
902
(2): デフォルトの名無しさん [sage] 2021/06/04(金) 17:26:41 ID:SUVTI0z/(1/3) AAS
https://qiita.com/bremen/items/c5aa9446e73aa4bc1de0
ossライセンスについての記事

調べたらcythonはApache Licenseみたい
てかossなんやから引用するのは自由やぞ
引用したものを改変してプログラ厶組んだときにそれを公開しないといけない義務があるライセンスのやつがあったりするだけで引用はなんならまるっと全部コピペしても何も問題ない
そんなこと普通せんと引用元のURL貼るけど

あとは一般的な引用ルールに従って引用したなら引用したと明示すればok
903: デフォルトの名無しさん [sage] 2021/06/04(金) 17:35:15 ID:tVKHcgFl(4/5) AAS
>>902
回答ありがとうございます
OSSの引用で訴えられたという事例もないと思うので、問題ないというのが一般的な認識ですかね
904
(1): デフォルトの名無しさん [sage] 2021/06/04(金) 17:44:54 ID:SUVTI0z/(2/3) AAS
普通に個人がブログに貼るだけなら大丈夫
ソースコードを利用して作ったアプリで金儲けしてるのにライセンス違反でコードを公開しなかったりするとossだけど著作権違反だったかそれに近い感じのもので訴えられることはあると思う

あとはossと違ってソースコード開示してても著作権は保持してて再配布の禁止とかしてる場合もあるからそういうのの引用は知らん著作権者に尋ねるべきやと思う
905: デフォルトの名無しさん [sage] 2021/06/04(金) 17:49:24 ID:tVKHcgFl(5/5) AAS
>>904
わかりました
一応python.orgに問い合わせてみます
906
(1): デフォルトの名無しさん [sage] 2021/06/04(金) 18:20:59 ID:UL/g29xp(1) AAS
>>902
cythonじゃなくてCPythonな。別物
907: デフォルトの名無しさん [sage] 2021/06/04(金) 18:25:13 ID:SUVTI0z/(3/3) AAS
>>906
あほんとやすまん
ライセンスも違ったわ
まあどっちみちossやから今回の引用に関しては問題ないやろ
908: デフォルトの名無しさん [sage] 2021/06/04(金) 20:36:30 ID:a6XWEKie(1) AAS
pythonはpythonを商用利用した人にソースの公開を
要求してるでしょうか否
909
(1): デフォルトの名無しさん [sage] 2021/06/06(日) 05:06:01 ID:v26ARvQ7(1) AAS
arr1 = [["北海道","札幌市"],["青森県","青森市"],["岩手県","盛岡市"],["宮城県","仙台市"],["秋田県","秋田市"],["山形県","山形市"],["福島県","福島市"]]
arr2 = ["秋田県","福島県"]
という2つの配列があったとして
[['秋田県', '秋田市'], ['福島県', '福島市']]という配列がほしい場合、

arr3 = []
for x in arr2:
....for y in arr1:
........if y[0] == x:
............arr3.extend([y])
以外にいい書き方ってありますか?
910: デフォルトの名無しさん [sage] 2021/06/06(日) 06:02:27 ID:c7m87H9N(1/2) AAS
[p for p in arr1 if p[0] in arr2]
でいけるかと
911: デフォルトの名無しさん [] 2021/06/06(日) 06:59:38 ID:TkNBt396(1) AAS
arr2はsetにしないと遅いよ
912: デフォルトの名無しさん [sage] 2021/06/06(日) 07:53:08 ID:RJFSPZSM(1) AAS
2要素ならsetより配列の方が速いんじゃね
Pythonの実装にもよるけど原理的にはそのはず
913: デフォルトの名無しさん [] 2021/06/06(日) 08:13:26 ID:b+8h8Rir(1) AAS
2要素ならそりゃまあ…
一般的な話
914: デフォルトの名無しさん [sage] 2021/06/06(日) 09:03:08 ID:FIycCTNf(1) AAS
>>909
arr1を連想配列にするわけにはいかんの?
915: デフォルトの名無しさん [sage] 2021/06/06(日) 12:20:46 ID:n+sQSuEO(1/2) AAS
inの比較は2要素でもsetのほうが速いよ
このケースは都道府県のほうをdictにするから使わないだろうけど
916: デフォルトの名無しさん [] 2021/06/06(日) 12:54:39 ID:DGB8ER8o(1/3) AAS
pathlibのis_dirとis_fileてありますけど
必ずどちらかですよね? どちらにもTrue/Falseを返すやつはいませんよね
917: デフォルトの名無しさん [] 2021/06/06(日) 13:00:32 ID:DGB8ER8o(2/3) AAS
あ、実在パスをiterdir()したときの子パスの話です
918
(1): デフォルトの名無しさん [sage] 2021/06/06(日) 13:11:50 ID:zdsuBAAw(1) AAS
子パスも含めてリンクとかでないならたぶんそれで合ってる
919: デフォルトの名無しさん [sage] 2021/06/06(日) 13:13:07 ID:FJMZOWZ2(1) AAS
is_fifoとかis_socketとかいろいろあることから察しろ
920: デフォルトの名無しさん [sage] 2021/06/06(日) 13:24:39 ID:c7m87H9N(2/2) AAS
究極的にはファイルシステムやOSの実装に依存して、そんな変なものが未来永劫ないという保証はないだろうから、pathlibではそこは担保できないんじゃないかな
921: デフォルトの名無しさん [] 2021/06/06(日) 13:27:50 ID:DGB8ER8o(3/3) AAS
>>918
windowsだと.linkはis_file()なんすよね
共有フォルダはdir
思いつく限り試したけど、何かあるのかなあと思って
922: デフォルトの名無しさん [sage] 2021/06/06(日) 13:46:38 ID:RoRkDiVo(1) AAS
リンク先が存在しないシンボリックリンクは両方Falseになるけど実害はないんじゃね
923: デフォルトの名無しさん [] 2021/06/06(日) 13:48:43 ID:NyhjUSek(1) AAS
あーリンクってリンクファイルじゃなくて元を見てるのか
まあそりゃそうだわな
924: デフォルトの名無しさん [sage] 2021/06/06(日) 14:25:48 ID:n+sQSuEO(2/2) AAS
両方Trueを返すやつはなさそうだけど
両方Falseを返すのはそこそこあるね
https://github.com/python/cpython/blob/main/Lib/stat.py#L27-L46
925: デフォルトの名無しさん [sage] 2021/06/06(日) 14:51:43 ID:jCNfz170(1) AAS
numpyのインストールって、コマンドプロンプトにpip打ち込んで入れるのと
Anacondaで入れるのとどっちがいいの?
どっちも変わらない?
926: デフォルトの名無しさん [sage] 2021/06/06(日) 15:50:54 ID:ZkAtJmrl(1) AAS
Anacondaに決まってんだろ、それでだめならpip
927: デフォルトの名無しさん [] 2021/06/06(日) 16:06:37 ID:9mmqAG88(1) AAS
anaconda入れたら普通に入ってる
928
(1): デフォルトの名無しさん [] 2021/06/06(日) 16:41:40 ID:H95uLz2j(1) AAS
anacondaとかいう産廃使うのいい加減やめにしないか?
さすがにもうpoetryに移行しよう
929: デフォルトの名無しさん [sage] 2021/06/06(日) 17:00:07 ID:zUgOrPQ2(1) AAS
ww anaconda ww
930: デフォルトの名無しさん [sage] 2021/06/06(日) 17:20:56 ID:3IIg9tuB(1) AAS
>>928
anaconda並みに安定したら使ってやるよ。カスを薦めるな。
931
(2): デフォルトの名無しさん [] 2021/06/06(日) 20:59:25 ID:pepoJCiR(1/2) AAS
質問させてください
Raspbian環境下(環境A)で
簡単なpythonプログラムを作って
python -m compileall aaa.py
を実行してpycファイルを作って実行したらちゃんと動作しました

もう一台のRaspbian環境(環境B)で同一のpycファイルを実行すると

./aaa.pyc
./aaa.pyc: 行 1: $'\003\363\r': コマンドが見つかりません
./aaa.pyc: 行 2: 対応する ``' を探索中に予期しないファイル終了 (EOF) です
./aaa.pyc: 行 8: 構文エラー: 予期しないファイル終了 (EOF) です

というエラーが出て動作しませんでした。
色々調べたのですが何が問題なのかわかりませんでした。
アドバイスお願いします

環境A、環境Bともに

Python aaa.py
で動かす分にはどちらの環境でもちゃんと動作しますが
環境Bではpycが動かない という状況です
932
(1): デフォルトの名無しさん [sage] 2021/06/06(日) 21:08:56 ID:3jLKJPwx(1) AAS
同一のpycファイルってコピーしたってこと?
933: デフォルトの名無しさん [sage] 2021/06/06(日) 21:40:22 ID:pepoJCiR(2/2) AAS
>>932
環境Bでpycファイル作って実行したら上記のエラーが出たので
環境Aからpycファイルコピーして実行してみましたが同様のエラーが出ましたね
934: デフォルトの名無しさん [] 2021/06/07(月) 10:52:48 ID:BLDePS2Q(1) AAS
環境Aから環境Bに.pyと.pycどちらもコピーしろ
935: デフォルトの名無しさん [] 2021/06/07(月) 13:45:43 ID:Jn08avwf(1) AAS
プレシの寸劇がうーたんが辛辣な扱い受けてて好き
936: デフォルトの名無しさん [sage] 2021/06/07(月) 16:05:09 ID:ipT3dgeq(1/3) AAS
>>931
python __pycache__/aaa.pyc
なら動くんだろ
シェルスクリプトで実行してるんじゃ
937
(1): デフォルトの名無しさん [] 2021/06/07(月) 17:33:13 ID:wssteHEM(1/2) AAS
初めまして、質問させてください。
windowsとmacだとコードが違うらしいんですが、具体的にどのように違うのか教えてるサイト等ありますか?
または変換してくれる何かがあったりしますか?
938
(2): デフォルトの名無しさん [sage] 2021/06/07(月) 18:01:13 ID:j6zJ7cwJ(1) AAS
>>937
質問が曖昧だからあれだけど
・プログラムの内容(コード)ではwindowsとMacで違いはない(どっちも同じ書き方で動作する)
・ただし両者で『文字コード』(デフォルトエンコード)は異なるので、
 テキストファイルとかの読み込み/書き出し処理に、文字コード違いでエラーになる可能性はある
 (文字コード周りの設定をちゃんと確認すればこの辺は大体何とかなる)
939: デフォルトの名無しさん [] 2021/06/07(月) 18:23:55 ID:wssteHEM(2/2) AAS
>>938
返事ありがとうございます、MACで作ったコードをダウンロードしたんですが、私Windowsなのでそのままでは使えないと思っていました。
文字コードをもう少し調べてみることにします。ありがとうございました!
940
(1): デフォルトの名無しさん [] 2021/06/07(月) 18:37:34 ID:7qZ7vyBh(1/2) AAS
x = 1
s = "var is {x}"

print -> "var is 1"
が欲しい。どうにかなりませんか
変数の文字列にf当てたいというか…
941
(1): デフォルトの名無しさん [sage] 2021/06/07(月) 18:55:46 ID:ipT3dgeq(2/3) AAS
f当てたいって知らんけど
こういうことなの
def printvar(var):
print('var is {}'.format(var))
printvar(1)

>>931
pycをbashで実行したら同じエラーがでた
942: デフォルトの名無しさん [sage] 2021/06/07(月) 19:05:29 ID:TK3hG12A(1/2) AAS
>>940
>>941と同じだけど s.format(x=1)
943: デフォルトの名無しさん [sage] 2021/06/07(月) 19:10:55 ID:4MLoy8uU(1) AAS
f使えると思うけど…
s = f"..."
944: デフォルトの名無しさん [sage] 2021/06/07(月) 19:51:20 ID:ipT3dgeq(3/3) AAS
欲しいのは
x=1
s=f"var is {x}"
print(s)
なのか
汎用的なのにするための関数が欲しいのかと
思ったけど
945
(1): デフォルトの名無しさん [] 2021/06/07(月) 19:57:41 ID:7qZ7vyBh(2/2) AAS
む?
すいません、言葉が足りなかった
sは事前定義でstr固定でいじれず、xだけがあとで動的に代入される感じです
例えばconfigparserの取得文字列に変数当てたいという
946: デフォルトの名無しさん [sage] 2021/06/07(月) 20:00:04 ID:k2+fmGQH(1) AAS
>>938
ほかに
Linux系しか使えない命令
Macでしか使えない命令
WInでしか使えない命令
  があるようななな・・・?
947: デフォルトの名無しさん [sage] 2021/06/07(月) 20:00:40 ID:vnIitvTz(1) AAS
f文字列が一番いいってどこかで見た
948: デフォルトの名無しさん [sage] 2021/06/07(月) 20:11:50 ID:m2IU34uB(1) AAS
formatでもf文字でもどっちでも構わんけど気分でごちゃ混ぜにするのはやめてくれ
949: デフォルトの名無しさん [sage] 2021/06/07(月) 20:27:55 ID:pxUr0SVP(1) AAS
>>945
こんなのか
def a(x,y):
_def func(z):
__return x+y+z
_return func
f=a('12','34')
print(f('56'))
950: デフォルトの名無しさん [sage] 2021/06/07(月) 21:42:39 ID:CltRSTuB(1) AAS
f'{n}'が文字数も少なくて一番簡単でわかりやすいのにわざわざ.format()で書くのってなんか意味あるの?
951: デフォルトの名無しさん [sage] 2021/06/07(月) 21:56:36 ID:TK3hG12A(2/2) AAS
変数展開を遅延させたいからだよ

遅延評価するにはf-stringだと関数でくくる必要があるのと
テンプレート文字列をコード上にリテラルで書く必要があるので
こういう用途の場合は今のところstr.format()かTemplateクラス使う
952
(1): デフォルトの名無しさん [sage] 2021/06/07(月) 22:29:36 ID:It6lCabU(1) AAS
何でもかんでもf-stringsにするのはよくないんやなあって
https://note.crohaco.net/2019/python-format-methods/
953: デフォルトの名無しさん [] 2021/06/07(月) 23:05:20 ID:x/kbgdh0(1) AAS
logging以外は全部str.formatにしてるわ
954: デフォルトの名無しさん [sage] 2021/06/08(火) 01:45:44 ID:HQgqltjE(1) AAS
>>952
formatのほうがいいごく少数例をあげてるだけって感じ
955: デフォルトの名無しさん [sage] 2021/06/08(火) 02:05:33 ID:QU85yBSR(1) AAS
3.4(Win XPラスト)のために、それ以降に登場したf文字列のような手法やメソッドは使わないようにしてる
subprocess.run() の代わりにsubprocess.Popen() でシコシコやったり…
956: デフォルトの名無しさん [sage] 2021/06/08(火) 02:45:00 ID:ie1akZGa(1) AAS
脳が1ビットでf-stringかformatしか記憶できない人もいるんですよ
957
(2): デフォルトの名無しさん [sage] 2021/06/08(火) 13:07:58 ID:6SttzhsF(1/2) AAS
python入れたらpipが付いてくるってどこのサイトにも書いてあるけど、コマンドプロンプトでpipのコマンドを打っても認識されない
'pip' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
どうすれば使える?
958: デフォルトの名無しさん [sage] 2021/06/08(火) 13:19:24 ID:RLQzdArC(1) AAS
最初にpython -m pip install novasでインストールしないとダメなんじゃね
959: デフォルトの名無しさん [sage] 2021/06/08(火) 13:22:16 ID:XwHmRNqr(1) AAS
>>957
windows使ってる?
自分も何故かpipだけ動かなくて焦ったけど、パソコン再起動させたら動くようになった
あとシェルコマンド(正式名称わからん、青い画面)で試してみたら?
960
(1): デフォルトの名無しさん [sage] 2021/06/08(火) 13:34:36 ID:oCdJgv/h(1) AAS
どこのやつをどのようにしてインストールしたのか
公式windosインストーラー版ならAdd Python 3.x to PATHにチェック入れずにインストールするとpath通ってない
961: デフォルトの名無しさん [sage] 2021/06/08(火) 14:01:00 ID:X0jbV2ox(1) AAS
>>957
インストール・ルートと、ScriptsディレクトリをPathに加える
%ProgramFiles%\Python39
%ProgramFiles%\Python39\Scripts
962: デフォルトの名無しさん [sage] 2021/06/08(火) 17:01:22 ID:dOMi6vvz(1) AAS
Windows のPowerShell では、環境変数PATH は、; で区切り。
$env:Path.split( ";" )

Python を含むPATHなら、
$env:Path.split( ";" ) | Where-Object {$_ -like "*python*"}

Linux の環境変数PATHなら、: で区切り。
echo $PATH | tr : "\n"
963: デフォルトの名無しさん [sage] 2021/06/08(火) 18:20:40 ID:KCPagTB6(1) AAS
windows公式ならpath通すやつにチェック初めからついてる
わざわざ外すとも思えんので取り敢えず再起動してみよか
964
(1): デフォルトの名無しさん [] 2021/06/08(火) 18:43:29 ID:zMtx/HCT(1) AAS
%USERPROFILE%\AppData\Roaming\Python\Python38\Scripts
これも場合によっては必要(というかこっちをメインにすべき)。
Windowsの場合は、pip使うときに--userを付けないと問答無用でPython本体の方に入れようとするので。
965: デフォルトの名無しさん [sage] 2021/06/08(火) 19:29:07 ID:4DvHg2Yd(1) AAS
>>964
ユーザー変数に追加するなら
%APPDATA%\Python\Python39\Scripts
でもおk
966: デフォルトの名無しさん [sage] 2021/06/08(火) 20:27:12 ID:6SttzhsF(2/2) AAS
優しい人おおいな
サンクスコ
結局>>960のとおりにインストールし直した
967
(1): デフォルトの名無しさん [] 2021/06/08(火) 21:32:06 ID:5GftIHto(1/2) AAS
getter(target):
__return eval("{target}_var.get()")

関数内で使われる(ユーザー入力と関係ない)evalですが
やっぱり避けるべき? こういうのは別にいい?
968
(1): デフォルトの名無しさん [sage] 2021/06/08(火) 21:36:16 AAS
クラス変数を変更しようとしたときエラーを吐かせたいんですけど
どうするのがいいでしょうか

現状、
class A:
_# 変更しないでください
_TEST = 100
a = A()
みたいにしています。

できれば、self.TEST=、a.TEST=、A.TEST=
それぞれで変更しようとするとエラーを吐かせられたらなと。
前半2つはセッターでできましたが、結局A.TESTで変更できてしまうし
そもそもクラス変数を変更”してしまうミス”にそこまで注視しないといけないのかな?とも思い
変更しないよう注意喚起・自粛するだけに留めておくのがいいのかどうか迷っています
969
(1): デフォルトの名無しさん [sage] 2021/06/08(火) 22:00:39 ID:A0D+JkMn(1) AAS
>>968
一番手っ取り早いのはメンバ変数の頭に__(アンダースコアを2つ付けて)
プライベート変数扱いにする
詳しい書き方とかはググると出てくるけど、この辺かな
ぶっちゃけ『注意喚起する』っていうのは大体地雷化するから、正当な方法で実装した方が良い

https://docs.python.org/ja/3/tutorial/classes.html#private-variables
https://www.headboost.jp/python-property/
970: デフォルトの名無しさん [sage] 2021/06/08(火) 22:09:45 AAS
>>969
なるほどそういう慣習があったのですね ありがとうございました
971
(1): デフォルトの名無しさん [sage] 2021/06/08(火) 22:18:59 ID:UcvX2QEY(1/2) AAS
>>967
>>785の例と同じじゃない?
972
(1): デフォルトの名無しさん [] 2021/06/08(火) 22:36:55 ID:5GftIHto(2/2) AAS
>>971
あ、ほんとうですね
でもうちの場合は中で微妙に処理が異なるので分岐がいるのです(getする範囲が違うとか)
evalないとif連打か辞書使うとかになるけど、それでも回避推奨なのかなと思って
973
(1): デフォルトの名無しさん [sage] 2021/06/08(火) 23:19:28 ID:JbMjUK2X(1) AAS
検討すればいいんじゃ
自分で使うだけなら問題ないし
ネットでつながっても隔離されてれば問題ない
検討が面倒なら使わないと決めたほうが
楽な場合もある
974: デフォルトの名無しさん [sage] 2021/06/08(火) 23:24:47 ID:UcvX2QEY(2/2) AAS
>>972
getattrとかリフレクション系のビルトイン関数使えば十分じゃない?
tkinterならそれも必要無いと思うけどね
975: デフォルトの名無しさん [] 2021/06/09(水) 00:16:11 ID:BQ0ecELC(1) AAS
>>973
python関係ないけどevalて双方向通信のときにヤバいんでやめましょうね、だけですよね
976: デフォルトの名無しさん [sage] 2021/06/09(水) 00:45:15 ID:tjJuKde+(1) AAS
evalを使う言い訳を探すくらいなら
evalを使わない書き方を学んだ方が良い
977: デフォルトの名無しさん [] 2021/06/09(水) 02:09:05 ID:NxdIgDtt(1) AAS
書けるけどゴチャつくって話でしょ
しかも別に対話しないなら使ってもいいしな
978: デフォルトの名無しさん [] 2021/06/09(水) 07:16:34 ID:u3L+Vxsq(1) AAS
スレでえばる初心者
979: デフォルトの名無しさん [sage] 2021/06/09(水) 14:22:13 ID:PlcFv7F9(1) AAS
どうでもいいけど上見たらくだらない質問の略だったのか
python蛇だからくだを巻いてるスレッドの略やと思ってた
980: デフォルトの名無しさん [sage] 2021/06/09(水) 15:58:48 ID:o9EDXjUA(1) AAS
print(hoge.data[0][0][0][0])
を実行すると、値ではなく、
<NdArray(()) at 0x1c7b360b960>
が返ってきます。
このインデックスにある値を表示する方法を教えて下さい。

hogeは((1, 1, 8, 8))のNumpy多次元配列とのことで、
このprint文の直前で
hoge.data.zero()
とやっているので、すべての要素はゼロになっているはずです。
うまく表示できると値が「0」と表示されるはずです。
981: デフォルトの名無しさん [] 2021/06/09(水) 16:02:29 ID:Gt06K9sH(1) AAS
getter(target):
__return getattr(self, [f'{target}_var').get()
__return locals[f'{target}_var'].get()
__return globals[f'{target}_var'].get()
982
(1): デフォルトの名無しさん [] 2021/06/09(水) 16:59:23 ID:ylbs+1ZI(1) AAS
getattrって存在すら知らんかった
これ本来はどういう用途のためにある関数なんだ?
983
(1): デフォルトの名無しさん [sage] 2021/06/09(水) 18:33:02 ID:J3IrN4Ey(1) AAS
tkinterならglobalgetvar()使うか
コールバック登録時にクロージャで変数をキャプチャしておけばgetattrは不要
984
(1): デフォルトの名無しさん [sage] 2021/06/09(水) 19:31:32 ID:2FVE2wAx(1) AAS
>>982
テスト用に便利
>>> for x in dir(obj):
... print x, ':', type(getattr(obj, x))
情報を得たり
クラス内の全テスト用関数実行するとか
関数の増減気にしないですむ
985
(1): デフォルトの名無しさん [] 2021/06/09(水) 19:59:43 ID:cSpjmop9(1) AAS
>>984
あーなるほど
便利かもしれない
986: デフォルトの名無しさん [] 2021/06/09(水) 20:41:17 ID:WPb/eWBP(1) AAS
むー次スレ立てられなかった
>>987頼みます
987
(1): デフォルトの名無しさん [sage] 2021/06/09(水) 20:47:42 ID:10jEyhRQ(1) AAS
Pythonにおけるgetattr()の利用方法を現役エンジニアが解説
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.237s*