pythonのdatetimeについて

投稿者: Anonymous

初歩的な質問で申し訳ありません。
以下のコードを実行すると、Object has no parametersのエラーが発生してしまいます。
各モジュールの内容も記載させていただき、また参考にさせていただいURLも掲載いたします。
解決法等お教えいただければ幸いです。

 from cryptocurrency_block import *
 from datetime import datetime as date
 def create_genesis_block():
     return Block(0,date.now(),"Genesis Block","0")

cryptocurrency_block

import hashlib as hs
class Block:
    def __init__(self,index,timestamp,data,previous_hash):
        self.index=index
        self.timestamp=timestamp
        self.data=data
        self.previous_hash=previous_hash
        self.hash=self.hash_block()
    def hash_block(self):
        sha=hs.sha256()
        sha.update((str(self.index)+str(self.timestamp)+str(self.data)+str(self.previous_hash)).encode('utf-8'))
        return sha.hexdigest()

参考にしたURL:https://qiita.com/weedslayer/items/d1aabe7cf31d182481fb

解決

_ の個数が足りないです。

def __init__(self,index,timestamp,data,previous_hash):

のように init の前後は _ を2つずつ付けてください。


コメントを受けて。

私の手元では以下の通り問題なく実行できます。

luna:~ % cat test.py
#!/usr/bin/env python

from cryptocurrency_block import *
from datetime import datetime as date
def create_genesis_block():
    return Block(0,date.now(),"Genesis Block","0")

luna:~ % cat cryptocurrency_block.py
import hashlib as hs
class Block:
    def __init__(self,index,timestamp,data,previous_hash):
        self.index=index
        self.timestamp=timestamp
        self.data=data
        self.previous_hash=previous_hash
        self.hash=self.hash_block()
    def hash_block(self):
        sha=hs.sha256()
        sha.update((str(self.index)+str(self.timestamp)+str(self.data)+str(self.previous_hash)).encode('utf-8'))
        return sha.hexdigest()
luna:~ % ./test.py
luna:~ % 

__pycache__ ディレクトリがあったら一旦削除してみるのはいかがでしょう。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *