если нет info.new_interface(): ошибка типа: объект » str » не вызывается, хотя я использовал правильный синтаксис str

#python #command-line

Вопрос:

 import subprocess
import optparse


def mac_changer(interface, mac_add):
    subprocess.call("ifconfig"   str(interface) " down", shell=True)
    subprocess.call("ifconfig"   str(interface) " hw ether "   str(mac_add), shell=True)
    subprocess.call("ifconfig"   str(interface) " up", shell=True)


def get_args():
    parser = optparse.OptionParser()
    parser.add_option("-i", "--interface", dest="new_interface", help="Selects Interface")
    parser.add_option("-m", "--MAC", dest = "new_mac", help="Changes the Mac Address")
    (options, arguments) = parser.parse_args()
    if not options.new_interface():
        parser.error("No interface specified")
    elif not options.new_mac:
        parser.error("No Mac address found in command line")

    return options


options = get_args()
mac_changer(options.interface, options.new_mac)
 

Я недавно работал над сменщиком mac, и он возвращает эту ошибку, хотя я не использую функцию str во всем коде, за исключением случаев, когда это необходимо.

Комментарии:

1. str Объект — это не то же самое, что str функция. В сообщении об ошибке говорится, что вы обрабатываете строку так, как если бы это была функция. В любом случае-какая строка выдает ошибку? Нам не нужно гадать.

2. if not options.new_interface: должно сработать

3. спасибо, что разъяснил мою глупую ошибку, Джоран :).