<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # 創建類 ~~~ In [1]: class CreateObj(object): ...: pass ...: In [2]: print(CreateObj()) <__main__.CreateObj object at 0x1105b76a0> ~~~ # 動態創建類 ~~~ In [6]: def choose_class(name): ...: if name == 'foo': ...: class Foo(object): ...: pass ...: return Foo # 返回的是類,不是類的實例 ...: else: ...: class Bar(object): ...: pass ...: return Bar ...: In [7]: MyClass = choose_class('foo') In [9]: print(MyClass) # 返回的是類不是對象 <class '__main__.choose_class.<locals>.Foo'> In [10]: print(MyClass()) # 對象 <__main__.choose_class.<locals>.Foo object at 0x110675d30> ~~~ 當你使用class關鍵字時候,python解釋器自動創建這個對象.但就和python中的大多數事情一樣,python仍然提供給你手動處理的方法 # type ## 檢測類型 ~~~ In [12]: print(type(1)) # 數值類型 <class 'int'> In [13]: print(type("1")) # 字符串類型 <class 'str'> In [14]: print(type(MyClass())) # 實例對象的類型 <class '__main__.choose_class.<locals>.Foo'> In [15]: print(type(MyClass)) # 類的類型 <class 'type'> ~~~ 發現上面type檢測類的時候,結果是type ## 創建類 ### type還有一種完全不同的功能,動態的創建類 type可以接收一個類的描述作為參數,返回一個類(根據傳入參數不同,同一個函數擁有兩種完全不同的用法是一件很傻的時候,但是這個python為了向后兼容) type可以像這樣工作: **type(類名,由父類名稱組成的元組(針對繼承的情況,可以為空),包含屬性的字典(名稱和值))** 比如這樣: ~~~ In [17]: Test2 = type("Test2",(),{}) # 定義了一個Test2類 In [18]: Test2() Out[18]: <__main__.Test2 at 0x1106f7860> ~~~ ### type接收一個字典來為類定義屬性 ~~~ Foo = type('Foo',(),{'bar':True}) ~~~ 可以翻譯為: ~~~ class Foo(object): bar=True ~~~ 可以把Foo當做一個普通的類來使用 注意: * type的第2個參數,元組中是父類的名字 ,而不是字符串 * 添加的屬性是類屬性,并不是實例屬性 ### type創建帶有方法的類 只需要定義一個有恰當簽名的函數并將其作為屬性賦值就可以 ~~~ In [21]: FooChild = type('FooChild',(Foo,),{'echo_bar':echo_bar}) In [22]: hasattr(FooChild, 'echo_bar') #判斷FooChild這個類中,是否有echo_bar這個 ...: 屬性 Out[22]: True In [23]: my_foo=FooChild() In [24]: my_foo.echo_bar() True ~~~ ### type添加靜態方法
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看