MulaiMulai sekarang secara gratis

Cetak tipe nilai kembalian

Anda sedang men-debug sebuah paket yang Anda kerjakan bersama teman-teman. Ada sesuatu yang aneh pada data yang dikembalikan oleh salah satu fungsi Anda, tetapi Anda bahkan belum yakin fungsi mana yang menyebabkan masalah. Anda tahu bahwa bug kadang dapat menyelinap ketika Anda mengharapkan sebuah fungsi mengembalikan satu jenis nilai, tetapi ternyata mengembalikan jenis yang berbeda. Misalnya, jika Anda mengharapkan fungsi mengembalikan array numpy, tetapi malah mengembalikan list, perilaku yang tidak terduga dapat terjadi. Untuk memastikan hal ini bukan penyebab masalah, Anda memutuskan menulis sebuah dekorator, print_return_type(), yang akan mencetak tipe variabel yang dikembalikan dari setiap pemanggilan fungsi apa pun yang dihias olehnya.

Latihan ini adalah bagian dari kursus

Menulis Function di Python

Lihat Kursus

Petunjuk latihan

  • Buat fungsi bersarang, wrapper(), yang akan menjadi fungsi baru yang didekorasi.
  • Panggil fungsi yang didekorasi.
  • Kembalikan fungsi baru yang didekorasi.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

def print_return_type(func):
  # Define wrapper(), the decorated function
  ____ ____(____, ____):
    # Call the function being decorated
    result = ____(____, ____)
    print('{}() returned type {}'.format(
      func.__name__, type(result)
    ))
    return result
  # Return the decorated function
  return ____
  
@print_return_type
def foo(value):
  return value
  
print(foo(42))
print(foo([1, 2, 3]))
print(foo({'a': 42}))
Edit dan Jalankan Kode