所以我第一次使用def函数,文档看起来很简单。还有一些例子。但是我不能把它和我的代码联系起来。 我有两个文件langpy和test1:
测试1.py
import time
import thread
import os
import sys
import ctypes
import wmi
from langpy import lang
from langpy import port
string = ""
class service_test:
def __init__(self):
thread.start_new(self.do_something, tuple())
while True:
if getattr(sys,'stopservice', False):
sys.exit()
time.sleep(0.3)
def do_something(self):
print(str(lang))
print(str(port))
while True:
fname = 'c:\\\\test.txt'
f = open(fname, 'a')
f.write(str(time.time()))
#f.write("%s /n/r") % string
f.close()
time.sleep(1)
if __name__ == "__main__":
tst = service_test()
兰皮:
^{pr2}$我希望它返回test1代码中来自Ardport = str(item.Dependent.Caption)
和language = str(windll.GetUserDefaultUILanguage())
的字符串,但它一直在打印
function lang at 0x027479F0
function port at 0x027503B0
(它们的外部也有<>
,但论坛格式不包括它们)
我有一个未经编辑的langpy版本(没有定义任何内容),它返回正确的str
import os
import time
import ctypes
import wmi
windll = ctypes.windll.kernel32
lang = str(windll.GetUserDefaultUILanguage())
print(lang)
Ardport = "not found"
c = wmi.WMI()
wql = "Select * From Win32_USBControllerDevice"
for item in c.query(wql):
s = str(item.Dependent.Caption)
strfind = "Raptor"
if (s.find(strfind) >= 0):
Ardport = str(item.Dependent.Caption)
print (Ardport)
您需要返回要从函数中打印的实际值。将
langpy
中现有的return
行替换为:以及
^{pr2}$然后您需要在}。这些print语句将基本上读为“打印函数调用
test1
文件中print(lang(my_lang))
和{lang(my_lang)
(或port(my_port)
)返回的任何内容”。在您正在正确导入这些函数:
但是,您打印的是这些函数的引用,而不是返回值。在
^{pr2}$实际上,您需要调用函数,然后打印返回的内容。你可以这样做:
^{3}$再加一个括号!在
编辑:进一步看,您也不会从函数返回任何内容。尝试:
注意:这些函数不需要参数,除非我缺少一些功能。在
self
参数用于类方法,因此它们知道要引用哪个对象。在相关问题 更多 >
编程相关推荐