(Python基礎)クラス定義でよく使いそうなもの

今更、Python 初心者向けのこと。


*変数、**変数、渡し

→ 可変長タプル渡し

→ 辞書渡し

__eq__ → == 演算子実行時の処理、is では効かない
__str__ → print や、%s の出力で実行される処理

class Foo():
    name = 'foo'
    def __init__(self, *args):
        if len(args) > 0: self.name = args[0]
    def getName(self):
        return self.name
    def __eq__(self, other):
        return self.name==other.name
    def __str__(self):
        return 'Foo is {}'.format(self.name)

foo1 = Foo()
foo2 = Foo('a')
print(foo1==foo2)
class Foo():
    item = {}
    def __init__(self, **kargs):
       self.item = kargs
    def getName(self):
        return self.item
    def __eq__(self, other):
        return self.item==other.item
    def __str__(self):
        return 'Foo is {}'.format(self.item)

foo1 = Foo(a=1)
foo2 = Foo(a=1)
print(foo1==foo2)