Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
01a0957f
Kaydet (Commit)
01a0957f
authored
Eki 23, 2007
tarafından
Raymond Hettinger
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Shorter name for namedtuple()
üst
910ab500
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
22 deletions
+24
-22
collections.py
Lib/collections.py
+5
-5
test_collections.py
Lib/test/test_collections.py
+17
-17
NEWS
Misc/NEWS
+2
-0
No files found.
Lib/collections.py
Dosyayı görüntüle @
01a0957f
__all__
=
[
'deque'
,
'defaultdict'
,
'named
_
tuple'
]
__all__
=
[
'deque'
,
'defaultdict'
,
'namedtuple'
]
from
_collections
import
deque
,
defaultdict
from
_collections
import
deque
,
defaultdict
from
operator
import
itemgetter
as
_itemgetter
from
operator
import
itemgetter
as
_itemgetter
from
keyword
import
iskeyword
as
_iskeyword
from
keyword
import
iskeyword
as
_iskeyword
import
sys
as
_sys
import
sys
as
_sys
def
named
_
tuple
(
typename
,
field_names
,
verbose
=
False
):
def
namedtuple
(
typename
,
field_names
,
verbose
=
False
):
"""Returns a new subclass of tuple with named fields.
"""Returns a new subclass of tuple with named fields.
>>> Point = named
_
tuple('Point', 'x y')
>>> Point = namedtuple('Point', 'x y')
>>> Point.__doc__ # docstring for the new class
>>> Point.__doc__ # docstring for the new class
'Point(x, y)'
'Point(x, y)'
>>> p = Point(11, y=22) # instantiate with positional args or keywords
>>> p = Point(11, y=22) # instantiate with positional args or keywords
...
@@ -94,10 +94,10 @@ def named_tuple(typename, field_names, verbose=False):
...
@@ -94,10 +94,10 @@ def named_tuple(typename, field_names, verbose=False):
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
# verify that instances can be pickled
# verify that instances can be pickled
from
cPickle
import
loads
,
dumps
from
cPickle
import
loads
,
dumps
Point
=
named
_
tuple
(
'Point'
,
'x, y'
,
True
)
Point
=
namedtuple
(
'Point'
,
'x, y'
,
True
)
p
=
Point
(
x
=
10
,
y
=
20
)
p
=
Point
(
x
=
10
,
y
=
20
)
assert
p
==
loads
(
dumps
(
p
))
assert
p
==
loads
(
dumps
(
p
))
import
doctest
import
doctest
TestResults
=
named
_
tuple
(
'TestResults'
,
'failed attempted'
)
TestResults
=
namedtuple
(
'TestResults'
,
'failed attempted'
)
print
TestResults
(
*
doctest
.
testmod
())
print
TestResults
(
*
doctest
.
testmod
())
Lib/test/test_collections.py
Dosyayı görüntüle @
01a0957f
import
unittest
import
unittest
from
test
import
test_support
from
test
import
test_support
from
collections
import
named
_
tuple
from
collections
import
namedtuple
class
TestNamedTuple
(
unittest
.
TestCase
):
class
TestNamedTuple
(
unittest
.
TestCase
):
def
test_factory
(
self
):
def
test_factory
(
self
):
Point
=
named
_
tuple
(
'Point'
,
'x y'
)
Point
=
namedtuple
(
'Point'
,
'x y'
)
self
.
assertEqual
(
Point
.
__name__
,
'Point'
)
self
.
assertEqual
(
Point
.
__name__
,
'Point'
)
self
.
assertEqual
(
Point
.
__doc__
,
'Point(x, y)'
)
self
.
assertEqual
(
Point
.
__doc__
,
'Point(x, y)'
)
self
.
assertEqual
(
Point
.
__slots__
,
())
self
.
assertEqual
(
Point
.
__slots__
,
())
self
.
assertEqual
(
Point
.
__module__
,
__name__
)
self
.
assertEqual
(
Point
.
__module__
,
__name__
)
self
.
assertEqual
(
Point
.
__getitem__
,
tuple
.
__getitem__
)
self
.
assertEqual
(
Point
.
__getitem__
,
tuple
.
__getitem__
)
self
.
assertRaises
(
ValueError
,
named
_
tuple
,
'abc
%
'
,
'efg ghi'
)
# type has non-alpha char
self
.
assertRaises
(
ValueError
,
namedtuple
,
'abc
%
'
,
'efg ghi'
)
# type has non-alpha char
self
.
assertRaises
(
ValueError
,
named
_
tuple
,
'class'
,
'efg ghi'
)
# type has keyword
self
.
assertRaises
(
ValueError
,
namedtuple
,
'class'
,
'efg ghi'
)
# type has keyword
self
.
assertRaises
(
ValueError
,
named
_
tuple
,
'9abc'
,
'efg ghi'
)
# type starts with digit
self
.
assertRaises
(
ValueError
,
namedtuple
,
'9abc'
,
'efg ghi'
)
# type starts with digit
self
.
assertRaises
(
ValueError
,
named
_
tuple
,
'abc'
,
'efg g
%
hi'
)
# field with non-alpha char
self
.
assertRaises
(
ValueError
,
namedtuple
,
'abc'
,
'efg g
%
hi'
)
# field with non-alpha char
self
.
assertRaises
(
ValueError
,
named
_
tuple
,
'abc'
,
'abc class'
)
# field has keyword
self
.
assertRaises
(
ValueError
,
namedtuple
,
'abc'
,
'abc class'
)
# field has keyword
self
.
assertRaises
(
ValueError
,
named
_
tuple
,
'abc'
,
'8efg 9ghi'
)
# field starts with digit
self
.
assertRaises
(
ValueError
,
namedtuple
,
'abc'
,
'8efg 9ghi'
)
# field starts with digit
self
.
assertRaises
(
ValueError
,
named
_
tuple
,
'abc'
,
'__efg__ ghi'
)
# field with double underscores
self
.
assertRaises
(
ValueError
,
namedtuple
,
'abc'
,
'__efg__ ghi'
)
# field with double underscores
self
.
assertRaises
(
ValueError
,
named
_
tuple
,
'abc'
,
'efg efg ghi'
)
# duplicate field
self
.
assertRaises
(
ValueError
,
namedtuple
,
'abc'
,
'efg efg ghi'
)
# duplicate field
named
_
tuple
(
'Point0'
,
'x1 y2'
)
# Verify that numbers are allowed in names
namedtuple
(
'Point0'
,
'x1 y2'
)
# Verify that numbers are allowed in names
def
test_instance
(
self
):
def
test_instance
(
self
):
Point
=
named
_
tuple
(
'Point'
,
'x y'
)
Point
=
namedtuple
(
'Point'
,
'x y'
)
p
=
Point
(
11
,
22
)
p
=
Point
(
11
,
22
)
self
.
assertEqual
(
p
,
Point
(
x
=
11
,
y
=
22
))
self
.
assertEqual
(
p
,
Point
(
x
=
11
,
y
=
22
))
self
.
assertEqual
(
p
,
Point
(
11
,
y
=
22
))
self
.
assertEqual
(
p
,
Point
(
11
,
y
=
22
))
...
@@ -44,17 +44,17 @@ class TestNamedTuple(unittest.TestCase):
...
@@ -44,17 +44,17 @@ class TestNamedTuple(unittest.TestCase):
self
.
assertEqual
(
p
.
__asdict__
(),
dict
(
x
=
11
,
y
=
22
))
# test __dict__ method
self
.
assertEqual
(
p
.
__asdict__
(),
dict
(
x
=
11
,
y
=
22
))
# test __dict__ method
# verify that field string can have commas
# verify that field string can have commas
Point
=
named
_
tuple
(
'Point'
,
'x, y'
)
Point
=
namedtuple
(
'Point'
,
'x, y'
)
p
=
Point
(
x
=
11
,
y
=
22
)
p
=
Point
(
x
=
11
,
y
=
22
)
self
.
assertEqual
(
repr
(
p
),
'Point(x=11, y=22)'
)
self
.
assertEqual
(
repr
(
p
),
'Point(x=11, y=22)'
)
# verify that fieldspec can be a non-string sequence
# verify that fieldspec can be a non-string sequence
Point
=
named
_
tuple
(
'Point'
,
(
'x'
,
'y'
))
Point
=
namedtuple
(
'Point'
,
(
'x'
,
'y'
))
p
=
Point
(
x
=
11
,
y
=
22
)
p
=
Point
(
x
=
11
,
y
=
22
)
self
.
assertEqual
(
repr
(
p
),
'Point(x=11, y=22)'
)
self
.
assertEqual
(
repr
(
p
),
'Point(x=11, y=22)'
)
def
test_tupleness
(
self
):
def
test_tupleness
(
self
):
Point
=
named
_
tuple
(
'Point'
,
'x y'
)
Point
=
namedtuple
(
'Point'
,
'x y'
)
p
=
Point
(
11
,
22
)
p
=
Point
(
11
,
22
)
self
.
assert_
(
isinstance
(
p
,
tuple
))
self
.
assert_
(
isinstance
(
p
,
tuple
))
...
@@ -73,9 +73,9 @@ class TestNamedTuple(unittest.TestCase):
...
@@ -73,9 +73,9 @@ class TestNamedTuple(unittest.TestCase):
self
.
assertRaises
(
AttributeError
,
eval
,
'p.z'
,
locals
())
self
.
assertRaises
(
AttributeError
,
eval
,
'p.z'
,
locals
())
def
test_odd_sizes
(
self
):
def
test_odd_sizes
(
self
):
Zero
=
named
_
tuple
(
'Zero'
,
''
)
Zero
=
namedtuple
(
'Zero'
,
''
)
self
.
assertEqual
(
Zero
(),
())
self
.
assertEqual
(
Zero
(),
())
Dot
=
named
_
tuple
(
'Dot'
,
'd'
)
Dot
=
namedtuple
(
'Dot'
,
'd'
)
self
.
assertEqual
(
Dot
(
1
),
(
1
,))
self
.
assertEqual
(
Dot
(
1
),
(
1
,))
def
test_main
(
verbose
=
None
):
def
test_main
(
verbose
=
None
):
...
...
Misc/NEWS
Dosyayı görüntüle @
01a0957f
...
@@ -798,6 +798,8 @@ Library
...
@@ -798,6 +798,8 @@ Library
Extension
Modules
Extension
Modules
-----------------
-----------------
-
collections
.
defaultdict
now
has
a
repr
()
function
that
can
be
run
through
eval
()
-
Patch
#
1388440
:
Add
set_completion_display_matches_hook
and
-
Patch
#
1388440
:
Add
set_completion_display_matches_hook
and
get_completion_type
to
readline
.
get_completion_type
to
readline
.
...
...
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