Gelişmiş Python Geliştirme Kursu
Bölüm
>
Seviye
İleri Fonksiyonlar
İç İçe Fonksiyonlar
Amaç
Makineler tarafından üretilen kumaşı iç içe fonksiyonlar kullanarak toplayın, yeniden dağıtın ve yerleştirin.
Bazen bir fonksiyonun yeteneklerini genişletmek için, diğer fonksiyonların içine fonksiyonlar yerleştirmek isteyebilirsiniz. Bunlara İç içe fonksiyonlar veya İç fonksiyonlar denir; basit, yeniden kullanılabilir kod oluşturma veya fonksiyonlarınızı dış müdahalelere karşı koruma gibi çeşitli amaçları vardır.
Atölyede birkaç kumaş üretim makinesi bulunmaktadır, bazıları depolamaya hazır kumaşa sahipken, diğerlerinin kumaşı üretmeyi tamamlamak için ipliğe ihtiyaç vardır. Her birinin önünde, kullanılma şeklini belirleyen ya "red" ya da "green" ya da yeşil halı bulunmaktadır. Kod düzenleyicide, makineyi çalıştırmamızı ve makineden malzemeleri ya toplamamızı ya da yerleştirmemizi sağlayacak bir Fonksiyon yazılacaktır.
def operate_machine(color):
def collect_cloth():
# Collect Code
player.speak("Cloth is ready for storage")
def place_thread():
# Place Code
player.speak("Machine needed more materials")
if color == "green":
collect_cloth()
if color == "red":
place_thread()
Fonksiyonun adı operate_machine ve color adında bir argüman alır. Makinenin önündeki halının rengine bağlı olarak, argüman olarak ya "red" ya da "green" girilmesi, makinenin çalışmasını değiştirerek malzemeleri yerleştirmenize veya toplamanıza olanak tanır.
Fonksiyonun içinde, isimlerine uygun olarak kullanılan iki İç içe fonksiyon, collect_cloth() ve place_thread() bulacaksınız. collect_cloth() fonksiyonunun içine player.collect("cloth") satırını ekleyin, bunun ardından player.speak("Quilt is ready for storage") satırı gelsin; place_thread() fonksiyonunun içine ise player.place("thread") satırını ekleyin, bunun ardından player.speak("Machine needed more materials") satırı gelsin.
Eksik kod satırlarını İç içe fonksiyonlara ekledikten sonra, sandığın önündeki ışıklı X işaretine gidin ve makinede kullanılmak üzere "thread" toplayın, örneğin: player.collect("thread").
Atölye içindeki karanlık X işaretlerine gidin ve makinelere doğru ilerlerken özel fonksiyon olan operate_machine'i kullanın. X işaretinin bulunduğu halının rengine bağlı olarak argüman olarak ya "red" ya da "green" ekleyin, örneğin: operate_machine("red"). Bu, ipliği yerleştirmenize ve kumaşı toplamanıza olanak tanır.
Tüm kumaşları topladıktan sonra, arka taraftaki sandığın yanındaki altın X işaretine gidin ve kumaşı depolamak için place() fonksiyonunu kullanın. cloths adında bir değişken oluşturun, topladığınız kumaşların sayısını buna ekleyin ve seviyeyi tamamlamak için sandığa yerleştirin, örneğin: player.place(cloths).