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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

5464閲覧

Python2 mainからclassへ引数を渡す際の型のエラーについて

HelpfulJp

総合スコア22

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2018/11/23 10:15

メインからclassへ引数を渡す際にTypeエラーが出てしまいました。
エラー文は

error

1TypeError: unbound method __init__() must be called with step instance as first argument (got ndarray instance instead)

渡した引数はリスト型なのですが、何がいけないのかわかりません。
型エラーをどのように解決すればよいかおしえてください。
参考URLあると幸いです。以下は、メインとクラスコードです。

python

1from step_function import step 2 3import matplotlib.pyplot as plt 4import numpy as np 5 6x=np.arange(-5.0,5.0,0.1) 7m=step.__init__(x) 8y=m.step.step_funtion() 9plt.plot(x,y) 10plt.ylim(-0.1,1.1) 11plt.show() 12 13z=m.step.sigmoid() 14plt.plot(x,z) 15plt.ylim(-0.1,1.1) 16plt.show() 17 18w=m.step.relu() 19plt.plot(x,w) 20plt.ylim(-0.1,1.1) 21plt.show()

python

1import numpy as np 2 3 4class step: 5 6 def __init__(self, x): 7 self.x = x 8 9 def step_funtion(self): 10 return np.array(self.x > 0, dtype=np.int) 11 12 def sigmoid(self): 13 return 1 / (1 + np.exp(-self.x)) 14 15 def relu(self): 16 return np.maximum(0, self.x) 17

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

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

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

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

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

guest

回答1

0

ベストアンサー

Python

m=step.init(x)

インスタンスを生成するときは、次のように書いてください。

Python

1m = step(x)

initメソッドは内部的に呼ばれます。

また、その次の行も正しくないです。

Python

y=m.step.step_funtion()

一度クラスの使い方を体系的に学ぶことをお勧めします。

ついでにPython3.xに乗り換えられてはいかがでしょうか。
NumPyがPython2.7へのサポートを切るまで、秒読みの段階に入ってきています。
Plan for dropping Python 2.7 support

投稿2018/11/23 12:06

編集2018/11/23 12:17
LouiS0616

総合スコア35658

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

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

HelpfulJp

2018/11/23 12:20 編集

いつもありがとうございます。訂正した所、 TypeError: __init__() takes exactly 2 arguments (101 given) と出たのですが、このことについてまた別枠で質問しても良いですか?
LouiS0616

2018/11/23 12:22

え、101 given ですか? 101個の値を渡していることになるのですが。 質問自体はご自由にどうぞ。
HelpfulJp

2018/11/23 12:56

メインmoduleでクラスを生成するときに*xと書いてたのでエラーが起こってました。無事解決しました。 Pythonバージョンの件読みました。お知らせありがとうございます。来年中にpy3に移行します。ただ、先日Anaconda3を導入した時にMKL関連のエラーが起こりNumpy使えず少し不安に感じたのでどうしようか悩んでます。私情を挟みお目汚しでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問