我一直得到以下错误
g:\python\u测试>;py3 lib\libtest.py p=g:\python\u test\SqlLogon.txt 回溯(最近一次呼叫最后一次): 文件“lib\libtest.py”,第43行,在
i.printit('c:\mylog.log')
文件“lib\libtest.py”,第32行,在printit中
s = wos()
NameError:未定义名称“wos”
如果我删除对os的调用,让s='WINDOWS'一切正常。 为什么我不能调用该函数??下面是给出问题的代码
import sys
import platform
import os
import subprocess
class utl:
def __init__(self,path):
self.path = path
print ('p = ' + self.path)
def usr(self):
lc = open(self.path,'r')
up = lc.readlines()
u = up[0]
u = u.strip('\n')
p = up[1]
p = p.strip('\n')
return u,p
def wos(self):
p = platform.system()
print ('type = ' + str(type(p)))
return p.upper()
def printit(self,filetoprt):
s = wos() # undefined wos
#s = "WINDOWS"
print ('os1 = ' + s + ' ' + filetoprt)
if s == ('WINDOWS'):
os.startfile(filetoprt,'print')
#x = LogonSql.usr('g:\python_test\lib\jcd.txt')
i= utl('g:\python_test\SqlLogon.txt')
p = i.usr()
#t = i.wos()
i.printit('c:\mylog.log')
wos
是您的类成员,您应该使用wos()
是一个绑定到utl
类实例的方法,因此您需要这样引用它们用
s = self.wos()
替换s = wos()
。否则,您的代码将尝试访问全局作用域(类之外)上的函数wos()
,您尚未定义该函数相关问题 更多 >
编程相关推荐