Class PyDictionary

java.lang.Object
org.python.core.PyObject
org.python.core.PyDictionary
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
PyDictionaryDerived

public class PyDictionary extends PyObject
A builtin python dictionary.
See Also:
  • Field Details

  • Constructor Details

    • PyDictionary

      public PyDictionary()
      Create an empty dictionary.
    • PyDictionary

      public PyDictionary(PyType subtype)
      For derived types
      Parameters:
      subtype -
    • PyDictionary

      public PyDictionary(Hashtable t)
      Create an new dictionary which is based on the hashtable.
      Parameters:
      t - the hashtable used. The supplied hashtable is used as is and must only contain PyObject key:value pairs.
    • PyDictionary

      public PyDictionary(PyObject[] elements)
      Create a new dictionary with the element as content.
      Parameters:
      elements - The initial elements that is inserted in the dictionary. Even numbered elements are keys, odd numbered elements are values.
  • Method Details

    • typeSetup

      public static void typeSetup(PyObject dict, PyType.Newstyle marker)
    • fromkeys

      public static PyObject fromkeys(PyObject keys)
    • fromkeys

      public static PyObject fromkeys(PyObject keys, PyObject value)
    • __len__

      public int __len__()
      Description copied from class: PyObject
      Equivalent to the standard Python __len__ method. Part of the mapping discipline.
      Overrides:
      __len__ in class PyObject
      Returns:
      the length of the object
    • __nonzero__

      public boolean __nonzero__()
      Description copied from class: PyObject
      Equivalent to the standard Python __nonzero__ method. Returns whether of not a given PyObject is considered true.
      Overrides:
      __nonzero__ in class PyObject
    • __finditem__

      public PyObject __finditem__(int index)
      Description copied from class: PyObject
      A variant of the __finditem__ method which accepts a primitive int as the key. By default, this method will call __finditem__(PyObject key) with the appropriate args. The only reason to override this method is for performance.
      Overrides:
      __finditem__ in class PyObject
      Parameters:
      index - the key to lookup in this sequence.
      Returns:
      the value corresponding to key or null if key is not found.
      See Also:
    • __finditem__

      public PyObject __finditem__(PyObject key)
      Description copied from class: PyObject
      Very similar to the standard Python __getitem__ method. Instead of throwing a KeyError if the item isn't found, this just returns null. Classes that wish to implement __getitem__ should override this method instead (with the appropriate semantics.
      Overrides:
      __finditem__ in class PyObject
      Parameters:
      key - the key to lookup in this container
      Returns:
      the value corresponding to key or null if key is not found
    • __setitem__

      public void __setitem__(PyObject key, PyObject value)
      Description copied from class: PyObject
      Equivalent to the standard Python __setitem__ method.
      Overrides:
      __setitem__ in class PyObject
      Parameters:
      key - the key whose value will be set
      value - the value to set this key to
    • __delitem__

      public void __delitem__(PyObject key)
      Description copied from class: PyObject
      Equivalent to the standard Python __delitem__ method.
      Overrides:
      __delitem__ in class PyObject
      Parameters:
      key - the key to be removed from the container
    • __iter__

      public PyObject __iter__()
      Description copied from class: PyObject
      Return an iterator that is used to iterate the element of this sequence. From version 2.2, this method is the primary protocol for looping over sequences.

      If a PyObject subclass should support iteration based in the __finditem__() method, it must supply an implementation of __iter__() like this:

          public PyObject __iter__() {
              return new PySequenceIter(this);
          }
       
      When iterating over a python sequence from java code, it should be done with code like this:
          PyObject iter = seq.__iter__();
          for (PyObject item; (item = iter.__iternext__()) != null;)  {
              // Do somting with item
          }
       
      Overrides:
      __iter__ in class PyObject
    • toString

      public String toString()
      Overrides:
      toString in class PyObject
    • __eq__

      public PyObject __eq__(PyObject ob_other)
      Description copied from class: PyObject
      Equivalent to the standard Python __eq__ method.
      Overrides:
      __eq__ in class PyObject
      Parameters:
      ob_other - the object to compare this with.
      Returns:
      the result of the comparison.
    • __ne__

      public PyObject __ne__(PyObject ob_other)
      Description copied from class: PyObject
      Equivalent to the standard Python __ne__ method.
      Overrides:
      __ne__ in class PyObject
      Parameters:
      ob_other - the object to compare this with.
      Returns:
      the result of the comparison.
    • __cmp__

      public int __cmp__(PyObject ob_other)
      Description copied from class: PyObject
      Equivalent to the standard Python __cmp__ method.
      Overrides:
      __cmp__ in class PyObject
      Parameters:
      ob_other - the object to compare this with.
      Returns:
      -1 if this < 0; 0 if this == o; +1 if this > o; -2 if no comparison is implemented
    • has_key

      public boolean has_key(PyObject key)
      Return true if the key exist in the dictionary.
    • __contains__

      public boolean __contains__(PyObject o)
      Description copied from class: PyObject
      Equivalent to the standard Python __contains__ method.
      Overrides:
      __contains__ in class PyObject
      Parameters:
      o - the element to search for in this container.
      Returns:
      the result of the search.
    • get

      public PyObject get(PyObject key, PyObject default_object)
      Return this[key] if the key exists in the mapping, default_object is returned otherwise.
      Parameters:
      key - the key to lookup in the dictionary.
      default_object - the value to return if the key does not exists in the mapping.
    • get

      public PyObject get(PyObject key)
      Return this[key] if the key exists in the mapping, None is returned otherwise.
      Parameters:
      key - the key to lookup in the dictionary.
    • copy

      public PyDictionary copy()
      Return a shallow copy of the dictionary.
    • clear

      public void clear()
      Remove all items from the dictionary.
    • update

      public void update(PyObject d)
      Insert all the key:value pairs from d into this dictionary.
    • setdefault

      public PyObject setdefault(PyObject key)
      Return this[key] if the key exist, otherwise insert key with a None value and return None.
      Parameters:
      key - the key to lookup in the dictionary.
    • setdefault

      public PyObject setdefault(PyObject key, PyObject failobj)
      Return this[key] if the key exist, otherwise insert key with the value of failobj and return failobj
      Parameters:
      key - the key to lookup in the dictionary.
      failobj - the default value to insert in the dictionary if key does not already exist.
    • pop

      public PyObject pop(PyObject key)
      Return a value based on key from the dictionary.
    • pop

      public PyObject pop(PyObject key, PyObject defaultValue)
      Return a value based on key from the dictionary or default if that key is not found.
    • popitem

      public PyObject popitem()
      Return a random (key, value) tuple pair and remove the pair from the dictionary.
    • items

      public PyList items()
      Return a copy of the dictionarys list of (key, value) tuple pairs.
    • keys

      public PyList keys()
      Return a copy of the dictionarys list of keys.
    • values

      public PyList values()
      Return a copy of the dictionarys list of values.
    • iteritems

      public PyObject iteritems()
      Return an interator over (key, value) pairs.
    • iterkeys

      public PyObject iterkeys()
      Return an interator over (key, value) pairs.
    • itervalues

      public PyObject itervalues()
      Return an interator over (key, value) pairs.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class PyObject
    • isSequenceType

      public boolean isSequenceType()
      Overrides:
      isSequenceType in class PyObject