gpt4 book ai didi

python - 获取全局名称未定义错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:04:14 25 4
gpt4 key购买 nike

我有以下类(class)

class notify():
def __init__(self,server="localhost", port=23053):
self.host = server
self.port = port
register = gntp.GNTPRegister()
register.add_header('Application-Name',"SVN Monitor")
register.add_notification("svnupdate",True)
growl(register)

def svn_update(self, author="Unknown", files=0):
notice = gntp.GNTPNotice()
notice.add_header('Application-Name',"SVN Monitor")
notice.add_header('Notification-Name', "svnupdate")
notice.add_header('Notification-Title',"SVN Commit")
# notice.add_header('Notification-Icon',"")
notice.add_header('Notification-Text',Msg)
growl(notice)

def growl(data):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((self.host,self.port))
s.send(data)
response = gntp.parse_gntp(s.recv(1024))
print response
s.close()

但是当我尝试通过以下代码使用此类时,我得到了 NameError: global name 'growl' is not defined

from growlnotify import *
n = notify()
n.svn_update()

有人知道这里发生了什么吗?

干杯纳什

最佳答案

在 Python 中,实例范围不会作为范围解析的一部分进行搜索。如果你想在 self 上调用一个方法,那么你必须在它前面加上对 self 的引用。

self.growl(register)

关于python - 获取全局名称未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2835684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com