Соответствует ли это вашему требованию? Это ничего не делает, кроме печати значения.
import tensorflow as tf
from tensorflow.python.framework import tensor_shape
some_data = [11,222,33,4,5,6,7,8]
def func( v ):
print (some_data[v])
return some_data[v]
with tf.Session() as sess:
r = tf.while_loop(
lambda i, v: i < 4,
lambda i, v: [i + 1, tf.py_func(func, [i], [tf.int32])[0]],
[tf.constant(0), tf.constant(2, tf.int32)],
[tensor_shape.unknown_shape(), tensor_shape.unknown_shape()])
r[1].eval()
Он печатает
11 4 222 33
blockquote>Порядок меняется каждый раз, но я думаю, что
tf.control_dependencies
может быть полезно для управления этим .
Просто потому, что публичность не имеет смысла в абстрактном классе. Абстрактный класс по определению не может быть создан непосредственно. Он может быть создан только экземпляром производного типа. Поэтому единственными типами, которые должны иметь доступ к конструктору, являются его производные типы и, следовательно, защищенный, имеет гораздо больший смысл, чем открытый.
Это хорошая практика OO.
public abstract class ExampleAbstractClass
{
protected ExampleAbstractClass()
{
// :::
}
}
Вы только хотите, чтобы наследующие дочерние классы имели доступ к конструктору. Единственный способ сделать это - сделать конструктор защищенным.
Имейте в виду, что когда вы добавляете параметры к этим конструкторам, это совершенно другое обсуждение.