Python class(Python class)


Pythonクラスの文法をチェックします.
  • の深さ学習を効果的に行うには、classをしっかりと行わなければなりません.私もできません.
  • 課の特徴を見てみましょう.
  • classの文法はPythonコードを見たことがあるはずです.
    class HI:
        pass
    
    class HI():
        pass
    本当に何もしていない基本的なclass文法を作りましたあの2つの文法はありません.
    違いは何ですか?()の値がない場合、同じ値()を持つと、呼び出すたびに異なる値が得られます.
    #id(HI)는 ()가 없기 떄문에 같은 값! 
    print(id(HI))
    print(id(HI))
    
    #id(HI)는 () 있기 때문에 다른 값!
    print(id(HI()))
    print(id(HI()))
    
    # ()가 있고 없고의 type을 확인!
    print(type(HI))
    print(type(HI()))
    2655729096408
    2655729096408
    2655737230672
    2655737230392


    クラスを作成した場合は、クラスに所属させる必要があります.たとえば、HIという名前のクラスを使用するには、x=HI()のように新しいHIという名前のクラスをXに置き換えることができます.代入はインスタンス化と呼ばれます.
    hi = HI()
    print(id(hi))
    2655736682144
    クラスには、プロパティとアクションが含まれます.
  • 属性は変数で表され,動作はdefという関数を用いる.
  • class Car:
        color = 'red'
        category = 'sports car'
    
        def drive(self):
            print("I'm driving")
    
        def accel(self, speed_up, current_speed=10):
            self.speed_up = speed_up
            self.current_speed = current_speed + speed_up
            print("speed up", self.speed_up, "driving at", self.current_speed)
    上の関数では、color=「red」、categor=「sportcar」が属性です.def drive、def accelは動作です.carクラスを表示すると、colorとcategoryはクラス属性として定義されます.私たちがこのクラスを使うと言ったとき、def acelのspeed up、current speedでしょう.
    class carのdef accelのspeed upとcurrent speedを変更する方法を知りたいかもしれません.サンプルコードを見てみましょう.
    mycar = Car()
    mycar.accel(5)
    mycar.accel(5,15)
    speed up 5 driving at 15
    speed up 5 driving at 20
    Carというクラスをmycarという変数myにインスタンス化します.acel()を使用するとclass carのdef acelを利用できます.mycar.acel(5)がspeed upに代入され、現在のspeedに数字が含まれていない場合、デフォルトでは関数は10として定義されます.つまりmycarです.accel(5)ではspeed upが付与され,mycar.acel(5,15)の場合、speed upの5 current speedには15が含まれます.mycar.acel()を使用する場合、speed upにデフォルト値が設定されていないため、もちろん正常に動作しません.
    classCarを使用する場合は、colorとcategoryを直接設定したい場合があります.
    上記の例
  • では、class関数を直接入力することで、色とcategoryが外部から変更できるかどうか分かりませんが、触っていません.
  • しかし、defという関数に入れるとclasscarを使用するたびに異なる値
  • を使用することができる.
    
    class Car2:
        def __init__(self, color, category):
            self.color = color
            self.category = category
    
        def drive(self):
            print("I'm driving")
    
        def accel(self, speed_up, current_speed=10):
            self.speed_up = speed_up
            self.current_speed = current_speed + self.speed_up
            print("speed up", self.speed_up, "driving at", self.current_speed)
    def init関数を使用しました.classCar 2という名前の関数を実行する場合は、この関数は個別です.initを呼び出す必要がなく、自動的に実行されます.
    car2 = Car2('yellow', 'sedan')
    car2.color
    'yellow'
    classを使うにはいろいろな使い方があります.クラスにクラスを入れることもできます.サンプルで検証してください
    class NewCar(Car2):
        pass
    
    car = NewCar('red','sport')
    car.drive()
    car.accel(10)
    I'm driving
    speed up 10 driving at 20
    Class New CarにCar 2を挿入しました.その後、NewCarはCar 2の関数を呼び出すことができます.
    これを使用すると、classは多くのタイプを作成できます.classを作成する理由を知りたいかもしれません.単純な符号化では、修正が必要な部分まで修正すればよいが、複雑な符号化では、そのうちの1つを修正するだけで、符号化全体を修正する必要がある場合がある.このような不便な過程を解決するためにclassやdef関数を使うのがもっと便利ですか?コードしていると思います.
    aiffel#人工知能教育
    研究所&aiffelの孫朱英が作った
    メールがないので、、、入れませんでした.
    孫朱英
    @reisei11