pythonの勉強始めたんだがエラーが出て原因が分からん

1 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:24:26 ID:zQsU0upY0.net
エラー文見ろとかいうクソなことは言うなよ
見てるに決まってるググって調べてるに決まってるからな分かったな
実行文↓ コードは次に貼る

C:¥Users¥riku1¥OneDrive¥ドキュメント¥RESEARCH¥PL>py test.py
Module is called
Classes and Functions are imiported
My name is bob
Human()
I'm tom. My stupid experience is suicide
Stupid
My name is mike and charge is cheaf
Human()
I'm innocense
Stupid
Traceback (most recent call last):
File "test.py", line 31, in <module>
mp.Human.printcnt()
AttributeError: type object 'Human' has no attribute 'printcnt'

6 :以下、\(^o^)/でVIPがお送りします:2020/05/11(月) 01:25:57 ID:G0qoyYq00.net

リクくん可愛い

23 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:41:34 ID:IseBY0qTM.net

>>20のclsをselfにすればいいんじゃない?

55 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:31:25 ID:3SuwLtRo0.net

>>53
ほんとだ。アイコン見てなかった
見た目そっくりだなー

45 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:22:39 ID:FwbFZ6a/0.net

引数不足じゃないの

58 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:41:09 ID:xSoPaWMQr.net

git触らるようになりたいけどなれてないときにpushだかpullだかコミットだかして他人のソース破壊したら怖いなって思って手が出ない

14 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:29:03 ID:3SuwLtRo0.net

引数 cls がいるんじゃないの

44 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:22:32 ID:zQsU0upY0.net

マジで1時間以上悩んでたのが馬鹿みたいだしこんな間抜けに突き合わせてしまって申し訳なさすぎる

31 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:59:35 ID:3SuwLtRo0.net

>>26
できるならgistに貼るとかしてみて
たぶんインデント狂ってる気がするよ

18 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:34:00 ID:zQsU0upY0.net

>>16
Humanはクラス名だからクラスから呼び出してるはず

53 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:29:10 ID:zQsU0upY0.net

>>51
ありがとう
ちなみにVScodeじゃなくてatomだぜ

13 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:28:37 ID:zQsU0upY0.net

indentは5chがクソだからコピペで反映されてないだけでちゃんとソースファイルではしてるから

32 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:01:37 ID:zQsU0upY0.net

>>31
github?
授業で使ったことあるけどよくわからん

33 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:07:23 ID:3SuwLtRo0.net

https://wandbox.org/permlink/pu3VfKFJhvI6UAi8

mypackage/module.py をまとめて mp. 取るようにしたコード
これで実行できるからたぶんそっちのコードの何かが間違ってる

28 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:57:42 ID:xsiNi/n1d.net

大体アナコンダ入れればなおる

25 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:52:13 ID:3SuwLtRo0.net

Module is called
Classes and Functions are imiported
My name is bob
Human()
I'm tom. My stupid experience is suicide
Stupid
My name is mike and charge is cheaf
Human()
I'm innocense
Stupid
2
手元でインデント正しく直して動かしたらこうなったよ

57 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:39:53 ID:3SuwLtRo0.net

>>56
あ。ちゃんと見てなかったわ。ぼけぼけっすね

異端と言うならソースはOneDrive じゃなくてGit で管理していこう。とかになるな。いまはGitHub のほとんどの機能が無償で使えるから触れるようになるといいよ

41 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:21:17 ID:3SuwLtRo0.net

>>39
ためしに合わせてみようと思ったけど rc はちょっと面倒だな

安定版入ってない?

2 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:24:50 ID:zQsU0upY0.net

test.py↓

import mypackage.module as mp
#from module import *

#exe
bob=mp.Human("bob")
bob.introduce()
bob.sayFuncName()
tom=mp.Stupid("tom","suicide")
tom.introduce()
tom.sayFuncName()
mike=mp.Criminal("mike","cheaf")
mike.introduce()
mike.sayFuncName()
maria=mp.Innocent("maria")
maria.introduce()
maria.sayFuncName()
'''
bob=Human("bob")
bob.introduce()
bob.sayFuncName()
tom=Stupid("tom","suicide")
tom.introduce()
tom.sayFuncName()
mike=Criminal("mike","cheaf")
mike.introduce()
mike.sayFuncName()
maria=Innocent("maria")
maria.introduce()
maria.sayFuncName()
'''
mp.Human.printcnt()

48 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:24:39 ID:zQsU0upY0.net

>>43
後学もクソもないと思う
俺がクソみたいな見落とししてただけ
mypackageの中とカレントディレクトリの両方にmodule.pyが作られてて
そのカレントディレクトリの方のmodule.pyにだけprintcnt()関数を書いてた
当然importしてるのはmypackageの方だけだから見つかるはずがない
マジですまんかった

29 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:58:35 ID:zQsU0upY0.net

>>28
使ってないけど一応入ってる

34 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:10:04 ID:zQsU0upY0.net

imgurに張った

27 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:57:28 ID:P1WcDAp+M.net

すまん嘘だったわ

36 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:14:12 ID:3SuwLtRo0.net

Windows 環境分からないけどいちおう確認でPython -V でバージョン 3.7 以降くらいだよね
あと >>33 で貼ったコードをそのまま test2.py とかにして手元で実行したらどうなる?

16 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:31:15 ID:IV623cMh0.net

Human.printcnt()
クラスに生えてるわけだしインスタンスからじゃなくてクラスから呼んでみれば?

17 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:31:24 ID:z4N+O0zDM.net

聞く態度ゴミすぎる
誰がお前に教えたがるのか

61 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:46:34 ID:3SuwLtRo0.net

>>59
いまは学生でもプロってか仕事と同じ道具がほぼ制限なしで使えるからやるだけ得だよ

仕事なら有償の機能やソフトさえ学生なら安価か無償で使えるし

5 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:25:49 ID:MP0WiG8G0.net

pornhubに見えた

5 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:25:49 ID:MP0WiG8G0.net

pornhubに見えた

4 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:25:20 ID:xsiNi/n1d.net

型がまちがってんじゃね

40 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:18:06 ID:3SuwLtRo0.net

まるっとコピって実行して動かないなら処理系かOS 依存な気がする

Mac とWandbox では動くからソースは問題ない気がする

9 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:26:03 ID:qMj+MsuBr.net

インデントがおかしいからさ〜
構文チェッカを使いなよう

42 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:21:25 ID:zQsU0upY0.net

やべえ
上手くいったけどマジであほみたいなミスで申し訳ない

19 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:37:28.286 ID:IV623cMh0.net

>>18
mp.__class__.printcnt()
では?覚えてないが
>>18

35 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:10:24.903 ID:3SuwLtRo0.net

ちなみにこれは貼るためにまとめただけで手元ではちゃんと mypackage/module.py と分離して動かしてる

59 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:43:47 ID:zQsU0upY0.net

>>57
gitはエンジニアなら使えないとな
bitbucketはrubyの授業で使ってたが

56 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:35:11 ID:zQsU0upY0.net

>>54
c:¥users¥riku1¥にdocument(エクスプローラでは”ドキュメント”)があることは確認したんだけど、onedriveディレクトリもあってその中に”ドキュメント”フォルダがあるんだよな
windowsだからonedrive使ってるけど結構異端なのか?

52 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:28:19 ID:zQsU0upY0.net

>>49
俺も直したいんだけど、一回"document"に変更したらonedriveがバグったから触れないようにしてる

3 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:25:04 ID:6CegeQDLd.net

リクくんドンマイ………

10 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:27:08 ID:3SuwLtRo0.net

printcnt が何かわからないけど実装してる?typoとかじゃない?

12 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:27:46 ID:zQsU0upY0.net

問題はmodule.pyの@classmethodの部分かtest.pyのmp.Human.printcnt()なんだろうけどどういじってもエラー出る

49 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:26:36 ID:SIjuB1HPM.net

どうでもいいけど
パスのドキュメントってカタカナ入ってるのいつかバグおこしそう

22 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:41:22 ID:qfmh8OHg0.net

詳しくないけどHumanじゃprintcnt使えないってことじゃないの?

46 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:23:17 ID:FwbFZ6a/0.net

と思ったら終わってた

7 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:25:57 ID:WeVWtL9y0.net

riku1

60 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:44:34 ID:3SuwLtRo0.net

>>58
意図的に壊すための操作をしないと壊れないし、それ以外の操作では万が一何かあっても戻す方法がある

GitHub の設定次第で意図敵に壊すための push もさせないようにできる

43 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:22:19 ID:3SuwLtRo0.net

お。うまくいった?後学のために原因を教えていただきたく

20 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:38:14.493 ID:zQsU0upY0.net

Humanの定義
class Human():
count=0

def __init__(a,name="none"):
a.name=name
Human.count+=1

def introduce(self):
print("My name is {0}".format(self.name))

def sayFuncName(self):
print("Human()")

@classmethod
def printcnt(cls):
print(cls.count)

test.pyの呼び出し文
mp.Human.printcnt()

エラー文
Traceback (most recent call last):
File "test.py", line 31, in <module>
mp.Human.printcnt()
AttributeError: type object 'Human' has no attribute 'printcnt'

37 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 02:16:33 ID:zQsU0upY0.net

>>33のmodule.pyの部分だけコピペしてみたけどやっぱりエラーでるな
処理系の問題?

11 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:27:37 ID:TUrDVzAyr.net

エラーの原因は3つしかない。
勉強不足、調査不足、仮定不足。

8 :以下、?ちゃんねるからVIPがお送りします:2020/05/11(月) 01:25:57 ID:zQsU0upY0.net

package¥module.py↓

class Human():
count=0

def __init__(a,name="none"):
a.name=name
Human.count+=1

def introduce(self):
print("My name is {0}".format(self.name))

def sayFuncName(self):
print("Human()")

@classmethod
def printcnt(cls):
print(cls.count)

class Stupid():
def __init__(self,name="none",experience="A stupid thing"):
self.name=name
self.exp=experience

def introduce(self):
print("I'm {0}. My stupid experience is {1}".format(self.name,self.exp))

def sayFuncName(self):
print("Stupid")

class Criminal(Human,Stupid):
def __init__(self,name="None",charges="None"):
super().__init__(name)
self.charges=charges

def introduce(self):
print("My name is {0} and charge is {1}".format(self.name,self.charges))

class Innocent(Stupid,Human):
def __init__(self,name="name"):
super().__init__(name)

def introduce(self):
print("I'm innocense")

print("Module is called")
print("Classes and Functions are imiported")

Twitterでフォローしよう

おすすめの記事