Есть ли что-то вроде «инициализации» в J?

В python мы можем написать «инициализировать», чтобы весь алгоритм работал автоматически после того, как пользователь вводит свой выбор. Мне было интересно, как это сделать в J.

def __init__(self, a = xxx, b = xxxx, c = xx, d = x):
             self.a = 'a'
             self.d = `d`
             self.b = 'b' 
             self.c = 'c'
              )

j
person JACKIE JACKIE YAN    schedule 12.07.2018    source источник
comment
Вы можете создать необязательные левые аргументы, используя explicit :   -  person Eelvex    schedule 13.07.2018


Ответы (1)


Если я понимаю ваш вопрос, я не знаю ничего, кроме установки глобальных значений в верхней части скрипта.

variable=: value   NB. =: is essential to create a value that exists outside of the script

В J вы можете переназначить все на глаголы, существительные, союзы или наречия. Вы контролируете эти назначения, поэтому, если вы не хотите, чтобы они менялись, не переназначайте их. Вы можете использовать локали для создания пространств имен, которые с меньшей вероятностью будут случайно изменены, если это вас беспокоит.

variable_locale_ =: value NB. locale name is the character string that separates _'s 

Но вы все равно можете переназначить значения в этой локали, просто менее вероятно, что пользователь сделает это случайно.

Возможно, кто-то, кто лучше знает Python, даст более точный ответ.

person bob    schedule 12.07.2018