SORU
28 ŞUBAT 2010, Pazar


Diğer Python dosyalarını almak için Nasıl Python:

Nasıl Python diğer dosyaları almak mı?

  1. Tam olarak nasıl ithalat belirli bir python import file.py gibi dosya alabilir miyim?
  2. Nasıl belirli bir dosya yerine bir klasör almak için?
  3. Dinamik olarak çalışma zamanında bir Python dosyasını yüklemek için, kullanıcı girişi dayalı istiyorum.
  4. Dosyadan sadece belli bir kısmını almak için nasıl bilmek istiyorum.

main.py örneğin, var

from extra import * 

bu istediğim belki de bana extra.py tüm dosya eylemleri verse tek bir tanımı

def gap():
    print
    print

Ben import gap extra.py elde etmek deyimine ne?

CEVAP
23 Aralık 2013, PAZARTESİ


Bir python dosyası, tüm artıları ve eksileri ile almak için birçok yol vardır.

Sadece aceleyle çalışan ilk alma stratejisi seçmiyorsun ya da ihtiyaçlarınızı karşılamak değil, bulduğunda bulunanla daha sonra yazmak zorundasın başka.

En kolay örnek açıklayan derim #1, profesyonel ve en sağlam örnek #5 doğru hareket edeceğim

1, python yorumlayıcısı ile python bir modülü İçe örnek:

  1. /Home/el/foo/fox.py bu koymak

    def what_does_the_fox_say():
      print("vixens cry")
    
  2. Python yorumlayıcısı

    el@apollo:/home/el/foo$ python
    Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
    >>> import fox
    >>> fox.what_does_the_fox_say()
    vixens cry
    >>> 
    

    Python yorumlayıcısı what_does_the_fox_say() fox.py içinde python fonksiyon çağrılması ile fox içe.

Bir komut yerine: diğer python dosyasını çalıştırmak için örnek 2, execfile (exec in Python 3)

  1. /Home/el/foo2/mylib.py bu koyun:

    def moobar():
      print("hi")
    
  2. /Home/el/foo2/main.py bu koyun:

    execfile("/home/el/foo2/mylib.py")
    moobar()
    
  3. dosyasını çalıştırın:

    el@apollo:/home/el/foo$ python main.py
    hi
    

    İşlev moobar mylib.py ithal ve main.py içinde kullanıma hazır hale getirilmiştir

Örnek 3, Kullanımı ... ... alma işlevi:

  1. /Home/el/foo3/chekov.py bu koyun:

    def question():
      print "where are the nuclear wessels?"
    
  2. /Home/el/foo3/main.py bu koyun:

    from chekov import question
    question()
    
  3. Bu gibi çalıştırın:

    el@apollo:/home/el/foo3$ python main.py 
    where are the nuclear wessels?
    

    Eğer chekov.py diğer fonksiyonlar tanımlı 37 ** sürece kullanılabilir

Örnek 4, ithal edilen yerden farklı bir dosya yeri ise riaa.py alın

  1. /Home/el/foo4/bittorrent/riaa.py bu koyun:

    def watchout_for_riaa_mpaa():
      print "there are honeypot kesha songs on bittorrent that log IP "  
      "addresses of seeders and leechers. Then comcast records strikes against "  
      "that user and thus, the free internet was transmogified into "  
      "a pay-per-view cable-tv enslavement device back in the 20th century."
    
  2. /Home/el/foo4/main.py bu koyun:

    import sys 
    import os
    sys.path.append(os.path.abspath("/home/el/foo4/bittorrent"))
    from riaa import *
    
    watchout_for_riaa_mpaa()
    
  3. Çalıştırın:

    el@apollo:/home/el/foo4$ python main.py 
    there are honeypot kesha songs on bittorrent...
    

    Farklı bir dizinden yabancı dosyasındaki her şeyi alır.

Çıplak alma komutu ile python 5, İthalat dosyaları örneği:

  1. Yeni bir dizin /home/el/foo5/ olun
  2. Yeni bir dizin /home/el/foo5/herp olun
  3. Herp altında boş bir dosya __init__.py adında olun:

    el@apollo:/home/el/foo5/herp$ touch __init__.py
    el@apollo:/home/el/foo5/herp$ ls
    __init__.py
    
  4. /Foo5/herp/dizin /home/bir el derp olun

  5. Derp altında, __init__.py başka bir dosya olun:

    el@apollo:/home/el/foo5/herp/derp$ touch __init__.py
    el@apollo:/home/el/foo5/herp/derp$ ls
    __init__.py
    
  6. /Home/altında/foo5/herp/derp el yeni bir dosya yolo.py orada ismi Koy:

    def skycake():
      print "SkyCake evolves to stay just beyond the cognitive reach of "  
      "the bulk of men. SKYCAKE!!"
    
  7. Kader anı, yeni bir dosya, 49**, bu koyun Olun;

    from herp.derp.yolo import skycake
    skycake()
    
  8. Çalıştırın:

    el@apollo:/home/el/foo5$ python main.py
    SkyCake evolves to stay just beyond the cognitive reach of the bulk 
    of men. SKYCAKE!!
    

    __init__.py boş dosya geliştirici bu dizin alınabilir bir paket olacağını gösteren python yorumlayıcısı iletişim kurar.

HEPSİ dahil nasıl benim yazı görmek isterseniz .burada bir dizin altında py dosyaları: http://stackoverflow.com/a/20753073/445131

Bonus, Mac, Linux veya Windows kullanıp kullanmadığınızı, burada anlatıldığı gibi python's idle editor kullanarak gerekir protip. Python dünya kilidini olacaktır. http://www.youtube.com/watch?v=DkW5CSZ_VII

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jeremy Stark

    Jeremy Stark

    23 Mayıs 2010
  • Kat Krazy

    Kat Krazy

    12 Kasım 2010
  • Samvith V Rao

    Samvith V Ra

    20 EKİM 2006