首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接收名称未定义错误且不确定原因

接收名称未定义错误且不确定原因
EN

Stack Overflow用户
提问于 2019-01-11 11:23:23
回答 1查看 131关注 0票数 0

我正在尝试使用tkinter向站点上的portscanner代码添加一个简单的GUI。代码本身运行良好,GUI如预期的那样出现,但是当单击按钮来运行portscanner的函数时,我得到如下结果:

代码语言:javascript
复制
"btn = Button(root, text='Scan', command= lambda : portscan(port))
NameError: name 'port' is not defined"



def portscan(port):

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(0.5)#

    try:
        con = s.connect((target,port))

        print('Port :',port,"is open.")

        con.close()
    except:
        pass
r = 1
for x in range(1,500):

    t = threading.Thread(target=portscan,kwargs={'port':r})

    r += 1
    t.start()


label = Label(root, text='Target IP: ')
label.place(x=0, y=0)

btn = Button(root, text='Scan', command= lambda : portscan(port))
btn.place(x=100, y=100)

root.mainloop()
EN

回答 1

Stack Overflow用户

发布于 2019-01-11 11:52:00

运算符lambda 冒号之前需要参数

“lambda函数的一般语法非常简单:

lambda argument_list:表达式

参数列表由逗号分隔的参数列表组成,表达式是使用这些参数的算术表达式。您可以将函数赋值给变量,以便为其命名。

下面的lambda函数示例返回其两个参数的总和:“

代码语言:javascript
复制
sum = lambda x, y : x + y
sum(3,4) #Returns 7

代码语言:javascript
复制
def sum(x,y):
    return x + y
sum(3,4) #Returns 7

调料:https://www.python-course.eu/python3_lambda.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54139959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档