【发布时间】:2014-09-21 01:21:41
【问题描述】:
我有两个脚本。脚本 1 的标题为 schemeDetails。第二个脚本是一个名为 temporaryFile 的测试脚本,它使用 schemeDetails 中的 schemeSetup 类创建一个 schemeSetup 对象。在我尝试访问 schemeSetup 类中的方法 insertScheme 之前,一切都非常糟糕。
我已使用以下命令导入了 schemeDetails 脚本:
import schemeDetails
reload(schemeDetails)
from schemeDetails import *
我可以创建 schemeDetails 对象并访问它的属性
d = schemeDetails.schemeSetup() -- fine
print(d.scheme) -- fine
d.insertScheme() -- throws error
但尝试调用 insertScheme 函数会引发错误
我不知道为什么会发生这种情况,因为 import 语句在我看来是光明正大的。任何建议表示赞赏
from sikuli import *
import os
class schemeSetup(object):
#Uses default values
def __init__(
self,
scheme = "GM",
cardNumber = "1234567A",
month = "December",
year = "2015",
setSchemeAsDefault = True):
#Provide default values for parameters
self.scheme = scheme
self.cardNumber = cardNumber
self.month = month
self.year = year
self.setSchemeAsDefault = setSchemeAsDefault
#schemeDetails is not a sub
# class of patient. It is simply defined within the patient class
# - there is a huge difference.
#====================================================#
#schemeDetails Function
def insertScheme(self):
print("insertScheme Works")
#r = Regions()
#r.description("Patient Maintenance", "schemeDetails")
#myRegion = r.createRegion()
#myRegion.highlight(1)
#click(myRegion.find(insertSchemeButton))
#click(myRegion.find(blankSchemeEntry))
#type(self.scheme + Key.ENTER + Key.ENTER)
#type(self.cardNumber + Key.ENTER)
#type(self.month + Key.ENTER)
#type(self.year + Key.ENTER)
#type(" ")
#unticks HT link, HT linking should be in a separate function
#====================================================#
#schemeDetails Function
def editScheme(self):
print("editScheme Works")
#====================================================#
def deleteScheme(self):
pass
#====================================================#
调用任何一个底部函数都不会产生错误可能很重要。如果我将 print("Hello") 放在 editScheme 下,并使用 s.editScheme 调用该方法,程序编译但我没有得到任何输出。如果我运行 print(s.editScheme) 它返回 None
【问题讨论】:
-
您为什么要使用所有这三个语句进行导入?
-
我认为这是必要的。我猜不会!我有一种感觉,就是这样,我只是不必要地彻底
-
你应该只需要一个,是的。
import Patient是最安全的。但是您必须在其中为每个func()加上前缀,即Patient.func()。from Patient import *不建议使用,但如果您的项目范围较小且您只是导入函数,则可以使用。 -
错误是什么?请向我们展示追溯。您可能还想查看 PEP 8 (legacy.python.org/dev/peps/pep-0008)。您使用了许多非pythonic的命名约定......并且您的类都应该从对象继承。
-
我在几个不同的类中使用了全局变量,所以我将使用 from xxx import * 为那些类,并尽量让其他类保持简单
标签: python module sikuli callable