いくつかはビルトインクラスのメソッド

内蔵の方法

データの任意のタイプは、ビスの一部多かれ少なかれ方法を取ります

ダブルダウン方式: __init__ __str__ __xxx__

各書籍のPythonの種では、また、マジックメソッドの組み込みメソッドとして知られています

特長:深刻ではない、呼び出しは常に良いの呼び出しではありません

例:

'abc'.split('b') # 正经调用str类型的split方法

print('abc' + 'efg')  # 直观

ret = 'abc'.__add__('efg')  # 不直观,不正经调用方法
print(ret)

重要な方法

  • __str__

    オブジェクトが印刷されたデフォルトの印刷は、オブジェクトのメモリアドレスですが、私のクラスで定義された役割に対応していない__str__デフォルトの印刷オブジェクトのメモリアドレス交換する同等の方法、戻ら、:文字列が戻らなければなりませんコンテンツ

    例えば、プリント(OBJ)(objがターゲットである)、実際には、常に呼び出されると、obj.__str__()このメソッドの戻り値を印刷し、

    (そのようなクラスの注釈として)の印刷を行うのは簡単

    # __str__
    class Course:
    course_lst = []
    def __init__(self,name,period,price):
    self.name = name
    self.period = period
    self.price = price
    def __str__(self):
    return '%s,%s,%s'%(self.name,self.period,self.price)
    # python = Course('python','6 months',19800)
    # linux = Course('linux','5 months',17800)
    # Course.course_lst = [python,linux]
    # for course in Course.course_lst:
    #     print(course)  
    # 打印一个对象总是打印内存地址,这个数据对我们来说没有用
    # 打印这个对象的时候查看这个对象的相关信息
  • __new__

    オブジェクトのインスタンス化プロセスのタイプは、プログラムは、第1のメモリアドレスを作成し、呼び出して__init__、誰かが私を助けていたので、私たちはこのメモリ空間を開く助け、私たちは物事のインスタンス化のメモリ空間を開くために世話を決して、その__new__方法

    関係ないんオブジェクトが、我々は新しいを所有することはできません

    1. テストケース
    class A:
        def __new__(cls,*args,**kwargs):
            print('执行我了')    
        def __init__(self):
            print('init')
            self.name = 'alex'
    A()
    
    # 结果
    # 执行我了
    # 默认来说,__new__方法是替我们开辟内存空间,但是我们这里将__new__执行的改为了打印,
    # __init__没有内存空间,也就不会执行了
    
    # new是没有self参数

    アルゴリズムへ#入門 - 顕微鏡

    #23デザインパターン - マクロ

おすすめ

転載: www.cnblogs.com/Hybb/p/11518958.html