#NEWLINE# @ public #NEWLINE# def ring( symbols , domain , order = lex ) : #NEWLINE# #INDENT# 'Construct a polynomial ring returning ``(ring, x_1, ..., x_n)``.\n\n    Parameters\n    ----------\n    symbols : str, Symbol/Expr or sequence of str, Symbol/Expr (non-empty)\n    domain : :class:`Domain` or coercible\n    order : :class:`Order` or coercible, optional, defaults to ``lex``\n\n    Examples\n    ========\n\n    >>> from sympy.polys.rings import ring\n    >>> from sympy.polys.domains import ZZ\n    >>> from sympy.polys.orderings import lex\n\n    >>> R, x, y, z = ring("x,y,z", ZZ, lex)\n    >>> R\n    Polynomial ring in x, y, z over ZZ with lex order\n    >>> x + y + z\n    x + y + z\n    >>> type(_)\n    <class \'sympy.polys.rings.PolyElement\'>\n\n    ' #NEWLINE# _ring = PolyRing ( symbols , domain , order ) #NEWLINE# return ( ( _ring , ) + _ring . gens )