私が間違っていることを理解するのに少し助けが必要です。おそらくかなり基本的なことですが、私は脳を包み込んでいません。
私のコードはこれです:
class baseElement(object):
def __init__(self):
self.Portal = ''
self.locator = ''
def present(self):
return self.Portal.PTF.Presence_of_Element(self.locator)
def visible(self):
return self.Portal.PTF.Is_Element_Visible(self.locator)
class baseActiveElement(baseElement):
def hover(self):
self.Portal.PTF.Mouse_over_element(self.locator)
def click(self):
self.Portal.PTF.Click_on_Element(self.locator)
def get(self):
return self.locator
これらのベースからオブジェクトをインスタンス化するときにポータルを定義します。ポータルには、指定されたアクションを実行するためのいくつかの関数が含まれています。これは機能します。そこに問題はありません。
しかし、ピリントはこうして不平を言います:
E1101: 8,15:baseElement.present: Instance of 'str' has no 'PTF' member
E1101: 11,15:baseElement.visible: Instance of 'str' has no 'PTF' member
E1101: 15,8:baseActiveElement.hover: Instance of 'str' has no 'PTF' member
E1101: 18,8:baseActiveElement.click: Instance of 'str' has no 'PTF' member
このエラーが発生しないようにするにはどうすればよいですか?
編集:initをこれに変更した場合:
class baseElement(object):
def __init__(self):
self.Portal = object
self.Portal.PTF = self.Portal.PTF
self.locator = ''
pylintの反対意見はなくなり、ポータルをベースオブジェクトとして定義することの価値を理解できます。これは、最終的には実際のオブジェクトになるためですが、Portal.PTF自体を定義すること自体はナンセンスのように見えます。