Пример #1
0
        public virtual object GetIndex(object self, object index)
        {
            Slice slice = index as Slice;

            if (slice != null && slice.step == null)
            {
                object getSlice;
                if (Ops.TryGetAttr(DefaultContext.Default, self, SymbolTable.GetSlice, out getSlice))
                {
                    int start, stop;
                    slice.DeprecatedFixed(self, out start, out stop);
                    return(Ops.Call(getSlice, start, stop));
                }
            }

            return(Ops.Invoke(self, SymbolTable.GetItem, index));
        }
Пример #2
0
        public virtual void SetIndex(object self, object index, object value)
        {
            Slice slice = index as Slice;

            if (slice != null && slice.step == null)
            {
                object setSlice;
                if (Ops.TryGetAttr(DefaultContext.Default, self, SymbolTable.SetSlice, out setSlice))
                {
                    int start, stop;
                    slice.DeprecatedFixed(self, out start, out stop);
                    Ops.Call(setSlice, start, stop, value);
                    return;
                }
            }

            Ops.Invoke(self, SymbolTable.SetItem, index, value);
        }