Python 3.x 是否有任何类返回函数的打印?
我正在开发一个用于读取端口的python程序。我的脚本对每个已检查的打开端口都有一个打印。但是我想删除这个打印并将其放入一个类中。因为当程序员想要看到打印时,他调用类 我可以创建公共类来从主文件(main.py)获取用户输入,并在脚本内部运行,但我无法控制从主文件打印Python 3.x 是否有任何类返回函数的打印?,python-3.x,python-sockets,Python 3.x,Python Sockets,我正在开发一个用于读取端口的python程序。我的脚本对每个已检查的打开端口都有一个打印。但是我想删除这个打印并将其放入一个类中。因为当程序员想要看到打印时,他调用类 我可以创建公共类来从主文件(main.py)获取用户输入,并在脚本内部运行,但我无法控制从主文件打印 def ping(目标、刻度): def端口扫描(端口): s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 尝试: con=s.connect((目标,端口)) 时间。睡眠(5
def ping(目标、刻度):
def端口扫描(端口):
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
尝试:
con=s.connect((目标,端口))
时间。睡眠(5)
端口_print='port:',端口“已打开!”
时间。睡眠(5)
#python=sys.exe
#execl(python,python,*sys.argv)
打印('终止')
con.close()
除:
#结果=无
#返回结果
通过
r=1
scal=int(比例)
对于范围(1,刻度)内的x:
线程(target=portscan,kwargs={'port':r})
r+=1
t、 开始()
正如您所见,我创建了变量port_print,我希望当用户在主文件中调用时,会有打印。使用
队列绕过返回线程中的限制:
from queue import Queue
def ping(target,scale, queue):
def portscan(port, queue):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
con = s.connect((target,port))
time.sleep(5)
port_print = 'Port :',port,"Is Open!."
queue.put(port_print)
time.sleep(5)
#python = sys.executable
#os.execl(python, python, * sys.argv)
print('Terminated')
con.close()
except:
#result = None
#return result
pass
r = 1
scal = int(scale)
for x in range(1,scal):
t = threading.Thread(target=portscan,kwargs={'port':r, queue=queue})
r += 1
t.start()
def main():
my_queue = Queue()
target = 'some target'
scale = 10
ping(target, scale, my_queue)
random_port_print = my_queue.get()
print(random_port_print)
未测试,但非常接近正确