返回函数,真的很混乱

2024-10-01 00:25:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的新手,我正在学习其他人的代码并将其融入到我的代码中,因此我为自己的丑陋道歉。你知道吗

我有一个变量random_collector = ''。随着代码的继续,我将random_collector设置为非空字符串。最后,我为random_collector设置了一个返回函数。问题是:它将返回空白字符串还是非空白字符串?你知道吗

def add_csv():
    random_collector = ''
    sitevalue = ''
    path = raw_input('path to csv file: ')
    with open(path, 'r') as ifile:
        reader = csv.reader(ifile)
        reader.next()
        for row in reader:
            deviceip = row[1]
            displayname = row[0]
            snmpc = row[2]
            alert_priority = row[3]
            monitoring_templates = row[4]
            pd_alert_service = row[5]
            site_code = row[6]
            team_owner = row[7]
            if displayname_pattern.match(displayname):
                cut_displayname = displayname[0:4]
                print cut_displayname
                if cut_displayname in site:
                    sitevalue = site.get(cut_displayname)
                    cut_office = cut_displayname[0:3]
                    if cut_office in na_office:
                        random_collector = random.choice(na_collector)
                        lm_add_api(deviceip, displayname, random_collector, sitevalue, snmpc, alert_priority, monitoring_templates, pd_alert_service, site_code, team_owner)
                        time.sleep(5)
                    elif cut_office in apac_office:
                        random_collector = random.choice(apac_office)
                        lm_add_api(deviceip, displayname, random_collector, sitevalue, snmpc, alert_priority, monitoring_templates, pd_alert_service, site_code, team_owner)
                    elif cut_office in emea_office:
                        random_collector = random.choice(emea_office)
                        lm_add_api(deviceip, displayname, random_collector, sitevalue, snmpc)
                else:
                    print 'Site format is not a recongnized'
                    time.sleep(2)
                    add()
            else:
                print 'Double check the site code, device group not found in Logic Monitor'
                time.sleep(2)
                add()

    return deviceip, displayname, random_collector, sitevalue, snmpc, alert_priority, monitoring_templates, pd_alert_service, site_code, team_owner

我在这段代码中混淆的第二部分是调用另一个名为lm_add_api(deviceip, displayname, random_collector, sitevalue, snmpc, alert_priority, monitoring_templates, pd_alert_service, site_code, team_owner)的函数,它使用了变量random\u collector。它是从返回中获取变量还是从random_collector = random.choice(na_collector)获取结果?你知道吗

if cut_office in na_office:
                        random_collector = random.choice(na_collector)
                        lm_add_api(deviceip, displayname, random_collector, sitevalue, snmpc, alert_priority, monitoring_templates, pd_alert_service, site_code, team_owner)

Tags: inaddsitecoderandomalertrowoffice
1条回答
网友
1楼 · 发布于 2024-10-01 00:25:49

随机收集器返回的值将是返回时存储在该变量中的任何值。如果代码到达并执行其中一行代码,将值赋给随机\u收集器,则返回值。否则,它将保留您给它的初始值(空字符串)。你知道吗

对于第二个问题,使用从random.choice(na_collector)返回的值调用lm\u add\u api。你知道吗

需要注意的是,Python与其他命令式编程语言一样,在代码执行时更改状态,并维护更新的状态值。因此,每当您更改变量的值时,它都会保留更新后的值。代码如下:

x = 1
x = 2
x = 3
x = 4
print x

只需打印“4”。所有以前的作业都会被覆盖。你知道吗

相关问题 更多 >