Pythonはオブジェクトの中のタイプの各種の属性に向いて、各種の方法は整理して、総括します!

3381 ワード

1.クラスの継承
継承はオブジェクト向けの重要なプロパティの1つです.継承関係:継承は2つのクラスに対する親子関係であり、子クラスは親クラスのすべての公有属性とメソッド継承を継承してコード再利用を実現します.
2.継承の使用
継承は、既存のデータと動作を再利用し、コードの重複記述を減らすことができます.Pythonはクラス名の後に継承関係を表す括弧のペアを使用し、括弧の中のクラスは親です.
クラスMyclass(ParentClass)親がinitメソッドを定義する場合、子クラスは親のinitメソッド:ParentClassを明示的に呼び出す必要があります.Init(self,[args...])サブクラスが親の動作を拡張する必要がある場合は、initメソッドのパラメータを追加できます.
3.多重継承
Pythonは多重継承をサポートし、1つのクラスが複数の親クラスを継承できる.
      :
    class class_name(Parent_c1,Parent_c2,….)
      :
                init   ,            init  ,     。

#!/usr/bin/env python
#-*-coding:utf-8-*-
#@Time   : 2018/1/14 23:09
#!@Auther:bestsky
#!@File  :demon4-    .py
class People(object):
    color = 'yellow'

    # def __init__(self, c):#      2 ,        ;        ,      。    
    def __init__(self):#    
        print "Init..."
        self.dwell = 'Earth'
        self.color = 'yellow'

    def think(self):
        print "I am a %s" %self.color
        print "My home is %s" %self.dwell
        print "I am a thinker"

class Martian(object):
    color = 'red'

    def __init__(self):
        self.dwell = 'Martian'

class Chinese(Martian, People): #     ,      ;         
    def __init__(self):
        # People.__init__(self, 'red')
        People.__init__(self)
        # super(Chinese, self).__init__( 'red') #  super      
    # pass
    # def talk(self):
    #     print("I like talking")
    # def think(self): #            
    #     print("I like talking")

cn = Chinese()
# print cn.color #     color
cn.think()
# cn.talk()

4.クラスの属性-まとめ
#-*-coding:utf-8-*-
#@Time   : 2018/1/14 23:55
#!@Auther:bestsky
#!@File  :demon5-      .py

class MyClass(object):
    var1 = '   ,       var1'
    __var2 = '       __var2'

    def func1(self):
        self.var3 = '        var3'  #    ,      
        self.__var4 = '        __var4'  #        ,    
        var5 = '        var5'  #          
        print self.__var4
        print var5

    def func2(self):
        print self.var1
        print self.__var2
        print self.var3
        print self.__var4

mc = MyClass()
mc.func1()
print('******' * 10)
mc.func2()
print('******' * 10)
print mc.__dict__
print MyClass.__dict__
# # print mc.var1  #    
# # print mc._MyClass__var2 #    
# # print mc.var3

5.クラスのアプローチ-まとめ
    
    
   
    
    
#-*-coding:utf-8-*-
#@Time   : 2018/1/15 0:22
#!@Auther:bestsky
#!@File  :demon6-      .py

class MyClass(object):
    name = 'Test'

    def __init__(self): #         ,     。     
        self.func1()
        self.__func2()
        self.classFun()
        self.staticFun()

    def func1(self):
        print self.name,
        print "      "
        # self.__func2() #           ,       

    def __func2(self):
        print self.name,
        print "      "

    @classmethod
    def classFun(self):
        print self.name,
        print "     "

    @staticmethod
    def staticFun():
        print MyClass.name,
        print "      "

mc = MyClass()
# mc.func1()
# MyClass.classFun()
# MyClass.staticFun()