<commit_before>"""
* と ** のアンパック演算子についてのサンプルです

PEP484 の動作について

REFERENCES:: http://bit.ly/2VMowpQ
"""
from trypython.common.commoncls import SampleBase
from trypython.common.commonfunc import pr


# noinspection PyMethodMayBeStatic
class Sample(SampleBase):
    def exec(self):
        # -----------------------------------------------------------------------
        # PEP 448 「* イテラブルアンパック演算子と ** 辞書アンパック演算子の利用方法拡張」
        #
        # 1. 関数呼び出しにて任意の数のアンパックが利用可能になった
        # 2. タプル、リスト、集合、辞書表現でも複数のアンパックが利用可能になった
        # -----------------------------------------------------------------------

        # 1
        self.pep448_01(*[1, 2], *[5], 3, *[9, 10])
        self.pep448_02(**{'a': 100, 'b': 200}, c=300, **{'d': 400})

        # 2
        r1 = *range(2), 2
        pr('r1', r1)

        r2 = [*range(2), 2, *range(3, 10)]
        pr('r2', r2)

        d1 = {'a': 100, 'b': 200}<commit_msg>update PEP448 example<commit_after>"""
* と ** のアンパック演算子についてのサンプルです

PEP484 の動作について

REFERENCES:: http://bit.ly/2VMowpQ
"""
from trypython.common.commoncls import SampleBase
from trypython.common.commonfunc import pr


# noinspection PyMethodMayBeStatic
class Sample(SampleBase):
    def exec(self):
        # -----------------------------------------------------------------------
        # PEP 448 「* イテラブルアンパック演算子と ** 辞書アンパック演算子の利用方法拡張」
        #
        # 1. 関数呼び出しにて任意の数のアンパックが利用可能になった
        # 2. タプル、リスト、集合、辞書表現でも複数のアンパックが利用可能になった
        # -----------------------------------------------------------------------

        # 1
        self.pep448_01(*[1, 2], *[5], 3, *[9, 10])
        self.pep448_02(**{'a': 100, 'b': 200}, c=300, **{'d': 400})
        self.pep448_02(*range(2), 3, *range(3, 4))

        # 2
        r1 = *range(2), 2
        pr('r1', r1)

        r2 = [*range(2), 2, *range(3, 10)]
        pr('r2', r2)

        d1 = {'a': 100, 'b': 200}
{'fraction_non_alphanumeric': 0.2938337801608579, 'fraction_numerical': 0.0707774798927614, 'mean_word_length': 1.5013404825737264, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5820211', 'n_tokens_mistral': 897, 'n_tokens_neox': 756, 'n_words': 129}