Argparse fonskyon eklemek

print.py:

def start():
    print(wff)

parser.add_argument("--yazdır", "-y", action=start(), const=wff,
                    help="eklenen yazıyı yazdırır")

bu programda py print.py --yazdır selam ın çıktısnın selam olcağını düşünüyordum ama olmuyor açıklabilecek olan varsa açıklarsa sevinirim.

parser tanimlanmamis oldugu icin hata aliyorsunuz.

Ben kodun bir kısmını verdim gerçi hata ettim ben sadece fonksyon atamak istiyorum.

action=start?​​​​​

Evet sorum da tam olarak bu start fonksyonunun çalışmasını istiyorum.

import argparse


def start(i):
    print(i)


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "-y", "--yazdır",
        help="Eklenen yazıyı yazdırır.", 
        type=start, 
        action="store"
    )
    parser.parse_args()
python .\test.py -y "Hello World"
1 Beğeni

İyi güzel hoş da if __name__ == "__main__": ben bunu eklemek zorunda mıyım?, Eğer evetse ne işe yarıyor bu kod. Ayrıca girdiyi hangi değişkene depoluyor

Bu kod, dosyanın nerden çalıştığı hakkında kontrol yapıyor.
Örneğin siz bu kodu başka bir dosya içinden import ederek çalıştırmaya çalışırsanız bu kod sayesinde engelleniyor.

Tabi teşekkür ederim @Wormer_King ancak bir sorum daha olacak py argument.py --ssid türktelekom1 ben burdaki türktelekom1 verisini SSID değişkenine atamak istiyorum bunuda verirseniz çok sevinirim

Şu şekilde kullanabilirsiniz:

import argparse

ssid = ""

def kaydet(veri):
    global ssid
    ssid = veri
    print(f"Veri : {ssid}")
    return ssid

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--ssid",help="Ssid alır",type=kaydet,action="store")
    parser.parse_args()

Çok teşekkür ederim.