私はそれが何度もここにあったことは知っていますが、私の場合は正しい答えが見つかりませんでした。
最初に:私はハッシュなどで実行されない簡単なデータベースシステムを作っています(少なくとも今のところは)。今私は立ち往生した。PythonsのAttributeError: 'NoneType'オブジェクトに属性 'errors'がありません
import sys
import os
filename = ""
database = ""
path = ""
table = ""
class Nollty:
returns = 0
errors = 0
def __init__(self, filename, database):
self.filename = filename
self.database = database
self.path = self.filename + "databases/" + self.database
openfile = open(self.path + "/db_required", "r")
if not openfile.errors:
self.returns = 1
if not os.path.exists(self.path + "/db_required"):
self.returns = 0
openfile.close();
def select(self, table):
errors = 0
self.table = table
openfile = open(self.path + "/" + self.table, "r")
if not openfile.errors:
errors = 1
if not os.path.exists(self.path + "/" + self.table):
errors = 0
openfile.close();
nollty = Nollty("", "test")
if nollty.returns == 1:
print "Successfully connected to the database!"
query = nollty.select("aaa_auto")
if query.errors == 0:
print "Successfully chosen the table!"
エラー出力は次のようになります。
Traceback (most recent call last):
File "/home/spotrudloff/Python/Nollty/nollty.py", line 40, in <module>
if query.errors == 0:
AttributeError: 'NoneType' object has no attribute 'errors'
問題は、私はPHPプログラマーだと思われる、と私は(そう、私の思考はまだある「PHPy」)数時間で今日のPythonを学びました。
すべての回答ありがとうございます。
select関数が何かを返すようにします... – JBernardo
'openfile。エラーはほぼ確実にあなたが思うものではありません。これはエラーコードに設定されていません。エンコーディングに使用するエラーハンドラを指定する文字列です。あなたのサンプルコードでは、常に 'None'という値を持ちます。 ([docs](http://docs.python.org/library/stdtypes.html#file.errors)を参照してください)。これが役に立ちましたので、 – ekhumoro
+1を-1にしてください。 – ryanjdillon