Merhabalar… Öncelikle Projemi Bölemiyorumdan Kastım Mesela Def fonksiyonu İle 5-6 Tane İşlem Var Fakat 350-360 Satır Kod Oldu Projede Ve Bu Göz Bozuyor Vede Ekleme Falan Yapacakken Baya Karışıyor Ben Bu fonksiyonları Yeni Bir Python Projeleri Oluşturarak İçlerine Yapıştırıyorum Fakat Hata Veriyor Projem Çalışırken Ya Projenin Adı Yok Diyor Yada Böyle Bir def Fonksiyonu Yok Diyor… Nasıl Yapabilirim…
Merhabalar,
Yanlış anlamadıysam, bazı fonksiyonları farklı betik dosyalarına yerleştirip, bu dosyalardaki fonksiyonları tek bir projede çalıştırmak istiyorsunuz. Eğer böyle bir işlem yapmak istiyorsanız, bir tane dosyayı ilk çalışacak dosya olarak seçin, fonksiyonları barındıran dosyaları da, bu ilk çalışacak dosyada import edin. Mesela aşağıdaki örnekte olduğu gibi:
Not: Betik dosyalarının aynı dizinde yer alması gerekir. Şayet betik dosyaları farklı klasörlerin içindeyse import etme şekli biraz daha farklı olacaktır.
test1.py isimli bir dosyamız var, içinde de aşağıdaki kodlar yazılı olsun:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def f1():
import time
for i in ".....":
print(i, flush=True, end="")
time.sleep(1)
print()
def f2():
import test2
if __name__ == "__main__":
print("test1 isimli dosya komut satırından çalıştırıldı.")
f1()
f2()
# test1 dosyasını komut satırından çalıştırırsak, f1() ve f2()
# fonksiyonları otomatik olarak çalıştırılacaktır.
test2.py isimli başka bir dosyamız var, onun içinde de aşağıdaki kodlar yazılı olsun.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def g1():
print("Programdan çıkılıyor.")
exit()
if __name__ == "__main__":
print("test2 isimli dosya komut satırından çalıştırıldı.")
# test2 dosyasını komut satırından çalıştırırsak, g1()
# fonksiyonu otomatik olarak çalıştırılmayacaktır. Çünkü bu
# blokun altında g1() fonksiyonu çağrılmadı.
else:
print("test2 isimli dosya import edildi.")
g1()
# test2 dosyasını başka bir oturumda import edersek, Bu kez g1()
# fonksiyonu otomatik olarak çalıştırılacaktır. Çünkü g1()
# fonksiyonunu bu blokun altında çağrıldı.
Komut satırında test1.py dosyasını python test1.py
şeklinde çalıştırırsak, bu betik dosyasındaki kodlar satır satır çalıştırılacaktır, kod satırlarında başka bir betik dosyasının da kullanılacağına dair bir ifade varsa (import ifadesi), bu dosya da çalışma sırası kendisine geldiği zaman çalıştırılacaktır.