2016-11-03 3 views
1

Может кто-нибудь помочь мне с этим кодом на Python. Я новичок в Python, но хорошо знаю java.Внутренняя функция python с аргументом

def train_nn(iterations, batch_size, use_tf_mnist=False): 
    def perPartition(it): 
     if not use_tf_mnist: 
      train_data = RowData(it) 
      test_data = train_data 
     else: 
      from tensorflow.examples.tutorials.mnist import input_data 
      mnist = input_data.read_data_sets('MNIST_data', one_hot=True) 
      train_data = mnist.train 
      test_data = mnist.train 

     return create_nn(train_data, test_data, iterations, batch_size) 

    return perPartition 

только вызывающий абонент train_nn(ITERATIONS, BATCH_SIZE, USE_TF_MNIST). Итак, где же внутренняя функция получает свой аргумент?

+0

Если 'perPartition' предполагается внутренней функцией, его нужно отступом. – Barmar

ответ

2

train_nn возвращает функцию perPartition. Он получает свой аргумент, когда вызывающий абонент вызывает функцию:

trained = train_nn(100, 50, False) 
nn = trained(some_it) 
+0

получил это !!! Спасибо за четкий ответ. – bhomass