Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
a427a2b8
Commit
a427a2b8
authored
Oct 29, 2001
by
Tim Peters
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename "dictionary" (type and constructor) to "dict".
parent
7ad2d1eb
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
66 additions
and
63 deletions
+66
-63
Doc/lib/libfuncs.tex
Doc/lib/libfuncs.tex
+7
-7
Lib/repr.py
Lib/repr.py
+1
-1
Lib/test/test_descr.py
Lib/test/test_descr.py
+36
-36
Lib/test/test_descrtut.py
Lib/test/test_descrtut.py
+10
-10
Lib/test/test_repr.py
Lib/test/test_repr.py
+1
-1
Lib/types.py
Lib/types.py
+1
-1
Misc/NEWS
Misc/NEWS
+3
-0
Objects/dictobject.c
Objects/dictobject.c
+5
-5
Objects/typeobject.c
Objects/typeobject.c
+1
-1
Python/bltinmodule.c
Python/bltinmodule.c
+1
-1
No files found.
Doc/lib/libfuncs.tex
View file @
a427a2b8
...
@@ -175,7 +175,7 @@ def my_import(name):
...
@@ -175,7 +175,7 @@ def my_import(name):
\code
{
del
\var
{
x
}
.
\var
{
foobar
}}
.
\code
{
del
\var
{
x
}
.
\var
{
foobar
}}
.
\end{funcdesc}
\end{funcdesc}
\begin{funcdesc}
{
dict
ionary
}{
\optional
{
mapping-or-sequence
}}
\begin{funcdesc}
{
dict
}{
\optional
{
mapping-or-sequence
}}
Return a new dictionary initialized from the optional argument.
Return a new dictionary initialized from the optional argument.
If an argument is not specified, return a new empty dictionary.
If an argument is not specified, return a new empty dictionary.
If the argument is a mapping object, return a dictionary mapping the
If the argument is a mapping object, return a dictionary mapping the
...
@@ -191,12 +191,12 @@ def my_import(name):
...
@@ -191,12 +191,12 @@ def my_import(name):
\code
{
\{
1: 2, 2: 3
\}
}
:
\code
{
\{
1: 2, 2: 3
\}
}
:
\begin{itemize}
\begin{itemize}
\item
\code
{
dict
ionary
(
\{
1: 2, 2: 3
\}
)
}
\item
\code
{
dict(
\{
1: 2, 2: 3
\}
)
}
\item
\code
{
dict
ionary
(
\{
1: 2, 2: 3
\}
.items())
}
\item
\code
{
dict(
\{
1: 2, 2: 3
\}
.items())
}
\item
\code
{
dict
ionary
(
\{
1: 2, 2: 3
\}
.iteritems())
}
\item
\code
{
dict(
\{
1: 2, 2: 3
\}
.iteritems())
}
\item
\code
{
dict
ionary
(zip((1, 2), (2, 3)))
}
\item
\code
{
dict(zip((1, 2), (2, 3)))
}
\item
\code
{
dict
ionary
([[2, 3], [1, 2]])
}
\item
\code
{
dict([[2, 3], [1, 2]])
}
\item
\code
{
dict
ionary
([(i-1, i) for i in (2, 3)])
}
\item
\code
{
dict([(i-1, i) for i in (2, 3)])
}
\end{itemize}
\end{itemize}
\end{funcdesc}
\end{funcdesc}
...
...
Lib/repr.py
View file @
a427a2b8
...
@@ -48,7 +48,7 @@ class Repr:
...
@@ -48,7 +48,7 @@ class Repr:
s
=
s
+
self
.
repr1
(
x
[
i
],
level
-
1
)
s
=
s
+
self
.
repr1
(
x
[
i
],
level
-
1
)
if
n
>
self
.
maxlist
:
s
=
s
+
', ...'
if
n
>
self
.
maxlist
:
s
=
s
+
', ...'
return
'['
+
s
+
']'
return
'['
+
s
+
']'
def
repr_dict
ionary
(
self
,
x
,
level
):
def
repr_dict
(
self
,
x
,
level
):
n
=
len
(
x
)
n
=
len
(
x
)
if
n
==
0
:
return
'{}'
if
n
==
0
:
return
'{}'
if
level
<=
0
:
return
'{...}'
if
level
<=
0
:
return
'{...}'
...
...
Lib/test/test_descr.py
View file @
a427a2b8
...
@@ -163,7 +163,7 @@ def dicts():
...
@@ -163,7 +163,7 @@ def dicts():
for
i
in
d
.
__iter__
():
l
.
append
(
i
)
for
i
in
d
.
__iter__
():
l
.
append
(
i
)
vereq
(
l
,
l1
)
vereq
(
l
,
l1
)
l
=
[]
l
=
[]
for
i
in
dict
ionary
.
__iter__
(
d
):
l
.
append
(
i
)
for
i
in
dict
.
__iter__
(
d
):
l
.
append
(
i
)
vereq
(
l
,
l1
)
vereq
(
l
,
l1
)
d
=
{
1
:
2
,
3
:
4
}
d
=
{
1
:
2
,
3
:
4
}
testunop
(
d
,
2
,
"len(a)"
,
"__len__"
)
testunop
(
d
,
2
,
"len(a)"
,
"__len__"
)
...
@@ -173,20 +173,20 @@ def dicts():
...
@@ -173,20 +173,20 @@ def dicts():
def
dict_constructor
():
def
dict_constructor
():
if
verbose
:
if
verbose
:
print
"Testing dict
ionary
constructor ..."
print
"Testing dict constructor ..."
d
=
dict
ionary
()
d
=
dict
()
vereq
(
d
,
{})
vereq
(
d
,
{})
d
=
dict
ionary
({})
d
=
dict
({})
vereq
(
d
,
{})
vereq
(
d
,
{})
d
=
dict
ionary
(
items
=
{})
d
=
dict
(
items
=
{})
vereq
(
d
,
{})
vereq
(
d
,
{})
d
=
dict
ionary
({
1
:
2
,
'a'
:
'b'
})
d
=
dict
({
1
:
2
,
'a'
:
'b'
})
vereq
(
d
,
{
1
:
2
,
'a'
:
'b'
})
vereq
(
d
,
{
1
:
2
,
'a'
:
'b'
})
vereq
(
d
,
dict
ionary
(
d
.
items
()))
vereq
(
d
,
dict
(
d
.
items
()))
vereq
(
d
,
dict
ionary
(
items
=
d
.
iteritems
()))
vereq
(
d
,
dict
(
items
=
d
.
iteritems
()))
for
badarg
in
0
,
0L
,
0j
,
"0"
,
[
0
],
(
0
,):
for
badarg
in
0
,
0L
,
0j
,
"0"
,
[
0
],
(
0
,):
try
:
try
:
dict
ionary
(
badarg
)
dict
(
badarg
)
except
TypeError
:
except
TypeError
:
pass
pass
except
ValueError
:
except
ValueError
:
...
@@ -196,37 +196,37 @@ def dict_constructor():
...
@@ -196,37 +196,37 @@ def dict_constructor():
# one seemed better as a ValueError than a TypeError.
# one seemed better as a ValueError than a TypeError.
pass
pass
else
:
else
:
raise
TestFailed
(
"no TypeError from dict
ionary
(%r)"
%
badarg
)
raise
TestFailed
(
"no TypeError from dict(%r)"
%
badarg
)
else
:
else
:
raise
TestFailed
(
"no TypeError from dict
ionary
(%r)"
%
badarg
)
raise
TestFailed
(
"no TypeError from dict(%r)"
%
badarg
)
try
:
try
:
dict
ionary
(
senseless
=
{})
dict
(
senseless
=
{})
except
TypeError
:
except
TypeError
:
pass
pass
else
:
else
:
raise
TestFailed
(
"no TypeError from dict
ionary
(senseless={})"
)
raise
TestFailed
(
"no TypeError from dict(senseless={})"
)
try
:
try
:
dict
ionary
({},
{})
dict
({},
{})
except
TypeError
:
except
TypeError
:
pass
pass
else
:
else
:
raise
TestFailed
(
"no TypeError from dict
ionary
({}, {})"
)
raise
TestFailed
(
"no TypeError from dict({}, {})"
)
class
Mapping
:
class
Mapping
:
# Lacks a .keys() method; will be added later.
# Lacks a .keys() method; will be added later.
dict
=
{
1
:
2
,
3
:
4
,
'a'
:
1j
}
dict
=
{
1
:
2
,
3
:
4
,
'a'
:
1j
}
try
:
try
:
dict
ionary
(
Mapping
())
dict
(
Mapping
())
except
TypeError
:
except
TypeError
:
pass
pass
else
:
else
:
raise
TestFailed
(
"no TypeError from dict
ionary
(incomplete mapping)"
)
raise
TestFailed
(
"no TypeError from dict(incomplete mapping)"
)
Mapping
.
keys
=
lambda
self
:
self
.
dict
.
keys
()
Mapping
.
keys
=
lambda
self
:
self
.
dict
.
keys
()
Mapping
.
__getitem__
=
lambda
self
,
i
:
self
.
dict
[
i
]
Mapping
.
__getitem__
=
lambda
self
,
i
:
self
.
dict
[
i
]
d
=
dict
ionary
(
items
=
Mapping
())
d
=
dict
(
items
=
Mapping
())
vereq
(
d
,
Mapping
.
dict
)
vereq
(
d
,
Mapping
.
dict
)
# Init from sequence of iterable objects, each producing a 2-sequence.
# Init from sequence of iterable objects, each producing a 2-sequence.
...
@@ -237,23 +237,23 @@ def dict_constructor():
...
@@ -237,23 +237,23 @@ def dict_constructor():
def
__iter__
(
self
):
def
__iter__
(
self
):
return
iter
([
self
.
first
,
self
.
last
])
return
iter
([
self
.
first
,
self
.
last
])
d
=
dict
ionary
([
AddressBookEntry
(
'Tim'
,
'Warsaw'
),
d
=
dict
([
AddressBookEntry
(
'Tim'
,
'Warsaw'
),
AddressBookEntry
(
'Barry'
,
'Peters'
),
AddressBookEntry
(
'Barry'
,
'Peters'
),
AddressBookEntry
(
'Tim'
,
'Peters'
),
AddressBookEntry
(
'Tim'
,
'Peters'
),
AddressBookEntry
(
'Barry'
,
'Warsaw'
)])
AddressBookEntry
(
'Barry'
,
'Warsaw'
)])
vereq
(
d
,
{
'Barry'
:
'Warsaw'
,
'Tim'
:
'Peters'
})
vereq
(
d
,
{
'Barry'
:
'Warsaw'
,
'Tim'
:
'Peters'
})
d
=
dict
ionary
(
zip
(
range
(
4
),
range
(
1
,
5
)))
d
=
dict
(
zip
(
range
(
4
),
range
(
1
,
5
)))
vereq
(
d
,
dict
ionary
([(
i
,
i
+
1
)
for
i
in
range
(
4
)]))
vereq
(
d
,
dict
([(
i
,
i
+
1
)
for
i
in
range
(
4
)]))
# Bad sequence lengths.
# Bad sequence lengths.
for
bad
in
[(
'tooshort'
,)],
[(
'too'
,
'long'
,
'by 1'
)]:
for
bad
in
[(
'tooshort'
,)],
[(
'too'
,
'long'
,
'by 1'
)]:
try
:
try
:
dict
ionary
(
bad
)
dict
(
bad
)
except
ValueError
:
except
ValueError
:
pass
pass
else
:
else
:
raise
TestFailed
(
"no ValueError from dict
ionary
(%r)"
%
bad
)
raise
TestFailed
(
"no ValueError from dict(%r)"
%
bad
)
def
test_dir
():
def
test_dir
():
if
verbose
:
if
verbose
:
...
@@ -543,13 +543,13 @@ def spamdicts():
...
@@ -543,13 +543,13 @@ def spamdicts():
def
pydicts
():
def
pydicts
():
if
verbose
:
print
"Testing Python subclass of dict..."
if
verbose
:
print
"Testing Python subclass of dict..."
verify
(
issubclass
(
dict
ionary
,
dictionary
))
verify
(
issubclass
(
dict
,
dict
))
verify
(
isinstance
({},
dict
ionary
))
verify
(
isinstance
({},
dict
))
d
=
dict
ionary
()
d
=
dict
()
vereq
(
d
,
{})
vereq
(
d
,
{})
verify
(
d
.
__class__
is
dict
ionary
)
verify
(
d
.
__class__
is
dict
)
verify
(
isinstance
(
d
,
dict
ionary
))
verify
(
isinstance
(
d
,
dict
))
class
C
(
dict
ionary
):
class
C
(
dict
):
state
=
-
1
state
=
-
1
def
__init__
(
self
,
*
a
,
**
kw
):
def
__init__
(
self
,
*
a
,
**
kw
):
if
a
:
if
a
:
...
@@ -561,12 +561,12 @@ def pydicts():
...
@@ -561,12 +561,12 @@ def pydicts():
return
self
.
get
(
key
,
0
)
return
self
.
get
(
key
,
0
)
def
__setitem__
(
self
,
key
,
value
):
def
__setitem__
(
self
,
key
,
value
):
assert
isinstance
(
key
,
type
(
0
))
assert
isinstance
(
key
,
type
(
0
))
dict
ionary
.
__setitem__
(
self
,
key
,
value
)
dict
.
__setitem__
(
self
,
key
,
value
)
def
setstate
(
self
,
state
):
def
setstate
(
self
,
state
):
self
.
state
=
state
self
.
state
=
state
def
getstate
(
self
):
def
getstate
(
self
):
return
self
.
state
return
self
.
state
verify
(
issubclass
(
C
,
dict
ionary
))
verify
(
issubclass
(
C
,
dict
))
a1
=
C
(
12
)
a1
=
C
(
12
)
vereq
(
a1
.
state
,
12
)
vereq
(
a1
.
state
,
12
)
a2
=
C
(
foo
=
1
,
bar
=
2
)
a2
=
C
(
foo
=
1
,
bar
=
2
)
...
@@ -801,7 +801,7 @@ def multi():
...
@@ -801,7 +801,7 @@ def multi():
vereq
(
a
.
getstate
(),
0
)
vereq
(
a
.
getstate
(),
0
)
a
.
setstate
(
10
)
a
.
setstate
(
10
)
vereq
(
a
.
getstate
(),
10
)
vereq
(
a
.
getstate
(),
10
)
class
D
(
dict
ionary
,
C
):
class
D
(
dict
,
C
):
def
__init__
(
self
):
def
__init__
(
self
):
type
({}).
__init__
(
self
)
type
({}).
__init__
(
self
)
C
.
__init__
(
self
)
C
.
__init__
(
self
)
...
@@ -813,7 +813,7 @@ def multi():
...
@@ -813,7 +813,7 @@ def multi():
vereq
(
d
.
getstate
(),
0
)
vereq
(
d
.
getstate
(),
0
)
d
.
setstate
(
10
)
d
.
setstate
(
10
)
vereq
(
d
.
getstate
(),
10
)
vereq
(
d
.
getstate
(),
10
)
vereq
(
D
.
__mro__
,
(
D
,
dict
ionary
,
C
,
object
))
vereq
(
D
.
__mro__
,
(
D
,
dict
,
C
,
object
))
# SF bug #442833
# SF bug #442833
class
Node
(
object
):
class
Node
(
object
):
...
@@ -999,7 +999,7 @@ def errors():
...
@@ -999,7 +999,7 @@ def errors():
if
verbose
:
print
"Testing errors..."
if
verbose
:
print
"Testing errors..."
try
:
try
:
class
C
(
list
,
dict
ionary
):
class
C
(
list
,
dict
):
pass
pass
except
TypeError
:
except
TypeError
:
pass
pass
...
@@ -1865,10 +1865,10 @@ def keywords():
...
@@ -1865,10 +1865,10 @@ def keywords():
vereq
(
unicode
(
string
=
'abc'
,
errors
=
'strict'
),
u'abc'
)
vereq
(
unicode
(
string
=
'abc'
,
errors
=
'strict'
),
u'abc'
)
vereq
(
tuple
(
sequence
=
range
(
3
)),
(
0
,
1
,
2
))
vereq
(
tuple
(
sequence
=
range
(
3
)),
(
0
,
1
,
2
))
vereq
(
list
(
sequence
=
(
0
,
1
,
2
)),
range
(
3
))
vereq
(
list
(
sequence
=
(
0
,
1
,
2
)),
range
(
3
))
vereq
(
dict
ionary
(
items
=
{
1
:
2
}),
{
1
:
2
})
vereq
(
dict
(
items
=
{
1
:
2
}),
{
1
:
2
})
for
constructor
in
(
int
,
float
,
long
,
complex
,
str
,
unicode
,
for
constructor
in
(
int
,
float
,
long
,
complex
,
str
,
unicode
,
tuple
,
list
,
dict
ionary
,
file
):
tuple
,
list
,
dict
,
file
):
try
:
try
:
constructor
(
bogus_keyword_arg
=
1
)
constructor
(
bogus_keyword_arg
=
1
)
except
TypeError
:
except
TypeError
:
...
...
Lib/test/test_descrtut.py
View file @
a427a2b8
...
@@ -11,21 +11,21 @@
...
@@ -11,21 +11,21 @@
from
test_support
import
sortdict
from
test_support
import
sortdict
import
pprint
import
pprint
class
defaultdict
(
dict
ionary
):
class
defaultdict
(
dict
):
def
__init__
(
self
,
default
=
None
):
def
__init__
(
self
,
default
=
None
):
dict
ionary
.
__init__
(
self
)
dict
.
__init__
(
self
)
self
.
default
=
default
self
.
default
=
default
def
__getitem__
(
self
,
key
):
def
__getitem__
(
self
,
key
):
try
:
try
:
return
dict
ionary
.
__getitem__
(
self
,
key
)
return
dict
.
__getitem__
(
self
,
key
)
except
KeyError
:
except
KeyError
:
return
self
.
default
return
self
.
default
def
get
(
self
,
key
,
*
args
):
def
get
(
self
,
key
,
*
args
):
if
not
args
:
if
not
args
:
args
=
(
self
.
default
,)
args
=
(
self
.
default
,)
return
dict
ionary
.
get
(
self
,
key
,
*
args
)
return
dict
.
get
(
self
,
key
,
*
args
)
def
merge
(
self
,
other
):
def
merge
(
self
,
other
):
for
key
in
other
:
for
key
in
other
:
...
@@ -56,7 +56,7 @@ Here's the new type at work:
...
@@ -56,7 +56,7 @@ Here's the new type at work:
3.25
3.25
>>> print a[0] # a non-existant item
>>> print a[0] # a non-existant item
0.0
0.0
>>> a.merge({1:100, 2:200}) # use a dict
ionary
method
>>> a.merge({1:100, 2:200}) # use a dict method
>>> print sortdict(a) # show the result
>>> print sortdict(a) # show the result
{1: 3.25, 2: 200}
{1: 3.25, 2: 200}
>>>
>>>
...
@@ -111,23 +111,23 @@ just like classic classes:
...
@@ -111,23 +111,23 @@ just like classic classes:
>>>
>>>
"""
"""
class
defaultdict2
(
dict
ionary
):
class
defaultdict2
(
dict
):
__slots__
=
[
'default'
]
__slots__
=
[
'default'
]
def
__init__
(
self
,
default
=
None
):
def
__init__
(
self
,
default
=
None
):
dict
ionary
.
__init__
(
self
)
dict
.
__init__
(
self
)
self
.
default
=
default
self
.
default
=
default
def
__getitem__
(
self
,
key
):
def
__getitem__
(
self
,
key
):
try
:
try
:
return
dict
ionary
.
__getitem__
(
self
,
key
)
return
dict
.
__getitem__
(
self
,
key
)
except
KeyError
:
except
KeyError
:
return
self
.
default
return
self
.
default
def
get
(
self
,
key
,
*
args
):
def
get
(
self
,
key
,
*
args
):
if
not
args
:
if
not
args
:
args
=
(
self
.
default
,)
args
=
(
self
.
default
,)
return
dict
ionary
.
get
(
self
,
key
,
*
args
)
return
dict
.
get
(
self
,
key
,
*
args
)
def
merge
(
self
,
other
):
def
merge
(
self
,
other
):
for
key
in
other
:
for
key
in
other
:
...
@@ -168,7 +168,7 @@ For instance of built-in types, x.__class__ is now the same as type(x):
...
@@ -168,7 +168,7 @@ For instance of built-in types, x.__class__ is now the same as type(x):
<type 'list'>
<type 'list'>
>>> isinstance([], list)
>>> isinstance([], list)
1
1
>>> isinstance([], dict
ionary
)
>>> isinstance([], dict)
0
0
>>> isinstance([], object)
>>> isinstance([], object)
1
1
...
...
Lib/test/test_repr.py
View file @
a427a2b8
...
@@ -145,7 +145,7 @@ class ReprTests(unittest.TestCase):
...
@@ -145,7 +145,7 @@ class ReprTests(unittest.TestCase):
def
test_descriptors
(
self
):
def
test_descriptors
(
self
):
eq
=
self
.
assertEquals
eq
=
self
.
assertEquals
# method descriptors
# method descriptors
eq
(
repr
(
dict
ionary
.
items
),
"<method 'items' of 'dictionary
' objects>"
)
eq
(
repr
(
dict
.
items
),
"<method 'items' of 'dict
' objects>"
)
# XXX member descriptors
# XXX member descriptors
# XXX attribute descriptors
# XXX attribute descriptors
# XXX slot descriptors
# XXX slot descriptors
...
...
Lib/types.py
View file @
a427a2b8
...
@@ -34,7 +34,7 @@ BufferType = type(buffer(''))
...
@@ -34,7 +34,7 @@ BufferType = type(buffer(''))
TupleType
=
tuple
TupleType
=
tuple
ListType
=
list
ListType
=
list
DictType
=
DictionaryType
=
dict
ionary
DictType
=
DictionaryType
=
dict
def
_f
():
pass
def
_f
():
pass
FunctionType
=
type
(
_f
)
FunctionType
=
type
(
_f
)
...
...
Misc/NEWS
View file @
a427a2b8
...
@@ -4,6 +4,9 @@ XXX Planned XXX Release date: 14-Nov-2001
...
@@ -4,6 +4,9 @@ XXX Planned XXX Release date: 14-Nov-2001
Type/class unification and new-style classes
Type/class unification and new-style classes
- The new builtin dictionary() constructor, and dictionary type, have
been renamed to dict. This reflects a decade of common usage.
- New-style classes can now have a __del__ method, which is called
- New-style classes can now have a __del__ method, which is called
when the instance is deleted (just like for classic classes).
when the instance is deleted (just like for classic classes).
...
...
Objects/dictobject.c
View file @
a427a2b8
...
@@ -1784,7 +1784,7 @@ dict_init(PyObject *self, PyObject *args, PyObject *kwds)
...
@@ -1784,7 +1784,7 @@ dict_init(PyObject *self, PyObject *args, PyObject *kwds)
static
char
*
kwlist
[]
=
{
"items"
,
0
};
static
char
*
kwlist
[]
=
{
"items"
,
0
};
int
result
=
0
;
int
result
=
0
;
if
(
!
PyArg_ParseTupleAndKeywords
(
args
,
kwds
,
"|O:dict
ionary
"
,
if
(
!
PyArg_ParseTupleAndKeywords
(
args
,
kwds
,
"|O:dict"
,
kwlist
,
&
arg
))
kwlist
,
&
arg
))
result
=
-
1
;
result
=
-
1
;
...
@@ -1804,10 +1804,10 @@ dict_iter(dictobject *dict)
...
@@ -1804,10 +1804,10 @@ dict_iter(dictobject *dict)
}
}
static
char
dictionary_doc
[]
=
static
char
dictionary_doc
[]
=
"dict
ionary
() -> new empty dictionary.
\n
"
"dict() -> new empty dictionary.
\n
"
"dict
ionary(mapping) -> new dict
initialized from a mapping object's
\n
"
"dict
(mapping) -> new dictionary
initialized from a mapping object's
\n
"
" (key, value) pairs.
\n
"
" (key, value) pairs.
\n
"
"dict
ionary(seq) -> new dict
initialized as if via:
\n
"
"dict
(seq) -> new dictionary
initialized as if via:
\n
"
" d = {}
\n
"
" d = {}
\n
"
" for k, v in seq:
\n
"
" for k, v in seq:
\n
"
" d[k] = v"
;
" d[k] = v"
;
...
@@ -1815,7 +1815,7 @@ static char dictionary_doc[] =
...
@@ -1815,7 +1815,7 @@ static char dictionary_doc[] =
PyTypeObject
PyDict_Type
=
{
PyTypeObject
PyDict_Type
=
{
PyObject_HEAD_INIT
(
&
PyType_Type
)
PyObject_HEAD_INIT
(
&
PyType_Type
)
0
,
0
,
"dict
ionary
"
,
"dict"
,
sizeof
(
dictobject
),
sizeof
(
dictobject
),
0
,
0
,
(
destructor
)
dict_dealloc
,
/* tp_dealloc */
(
destructor
)
dict_dealloc
,
/* tp_dealloc */
...
...
Objects/typeobject.c
View file @
a427a2b8
...
@@ -2484,7 +2484,7 @@ tp_new_wrapper(PyObject *self, PyObject *args, PyObject *kwds)
...
@@ -2484,7 +2484,7 @@ tp_new_wrapper(PyObject *self, PyObject *args, PyObject *kwds)
}
}
/* Check that the use doesn't do something silly and unsafe like
/* Check that the use doesn't do something silly and unsafe like
object.__new__(dict
ionary
). To do this, we check that the
object.__new__(dict). To do this, we check that the
most derived base that's not a heap type is this type. */
most derived base that's not a heap type is this type. */
staticbase
=
subtype
;
staticbase
=
subtype
;
while
(
staticbase
&&
(
staticbase
->
tp_flags
&
Py_TPFLAGS_HEAPTYPE
))
while
(
staticbase
&&
(
staticbase
->
tp_flags
&
Py_TPFLAGS_HEAPTYPE
))
...
...
Python/bltinmodule.c
View file @
a427a2b8
...
@@ -1848,7 +1848,7 @@ _PyBuiltin_Init(void)
...
@@ -1848,7 +1848,7 @@ _PyBuiltin_Init(void)
#ifndef WITHOUT_COMPLEX
#ifndef WITHOUT_COMPLEX
SETBUILTIN
(
"complex"
,
&
PyComplex_Type
);
SETBUILTIN
(
"complex"
,
&
PyComplex_Type
);
#endif
#endif
SETBUILTIN
(
"dict
ionary"
,
&
PyDict_Type
);
SETBUILTIN
(
"dict
"
,
&
PyDict_Type
);
SETBUILTIN
(
"float"
,
&
PyFloat_Type
);
SETBUILTIN
(
"float"
,
&
PyFloat_Type
);
SETBUILTIN
(
"property"
,
&
PyProperty_Type
);
SETBUILTIN
(
"property"
,
&
PyProperty_Type
);
SETBUILTIN
(
"int"
,
&
PyInt_Type
);
SETBUILTIN
(
"int"
,
&
PyInt_Type
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment