#!/usr/bin/env python
# -*- coding:utf-8 -*-
# python內建方法
class a:
n = "a"
def f2(self):
print("from a")
class b(a):
n = "b"
def f1(self):
print("from b")
# def f2(self):
# print("f2 from b")
class c(a):
n = "c"
def f2(self):
print("from c")
class d(b,c):
# def __new__(cls, *args, **kwargs):#初始化類中所有構造方法,如果這樣重寫了那麼就只會執行重寫的這個方法,需要再呼叫類中的其它方法就會報錯
# print("--new--")
def __init__(self):
print("__init__")
self.n = 4
def __call__(self, *args, **kwargs):
print("__call__")
『『『test doc『『『
# def __del__(self):#在程式執行完後會在記憶體中自動銷毀
# print("deleteing the ....")
pass
#1、繼承類的優先順序
# d = d()
# d.f1()
# d.f2()#按照先去找b,沒有的話再去找c,c沒有的話再去找a。按照廣度優先的原則
#在老版本中經典類按照深度優先,新式類按照廣度優先,但是在3.0後無論經典類還是新式類全都按照廣度優先,因此上圖雖然是經典類但是還是廣度優先
#2、類中的內建方法
# d = d()
# print(d.__doc__) #列印出類中的字串,可以用來注釋
# print(d.__module__)#列印模組所在的檔案的名字
#obj = d() #執行__init__
#obj() #執行__call__
#print(obj.__new__):#初始化類中所有構造方法,如果這樣重寫了那麼就只會執行重寫的這個方法,需要再呼叫類中的其它方法就會報錯
#print(obj.__dict__)#將類的成員變數以字典的形式列印出來,不會列印例項變數
#metaclasses 比new都還要底層的類,如果重寫類就用到,基本不會用到
#3、類的構造 類是由type構造的
# wohaoshuai = type("wohaoshuai",(),)
# print(type(wohaoshuai)) #
# a = wohaoshuai()
# print(a.test) #123
python內建類 5 python 內建類
1 例項屬性和類屬性 給例項繫結屬性的方法是通過例項變數,或者通過self變數 classchinese def init self,name,age self.name name self.self.age age s1 chinese alex man 22 s2 chinese alex2 w...
python 類的內建方法
1.doc 列印類的備註 class animal object 建立動物類 def run self 動物都會跑 pass a animal 列印animal類的備註 print a.doc 2.call 將類進行例項化後,呼叫該例項時,會執行 call 方法。注意 類中無 call 方法時,例項...
python類的內建函式
str 函式如果乙個類中定義了 str 方法,那麼在列印 物件 時,預設輸出該方法的返回值。class foo def str self return wupeiqi obj foo print obj 輸出 wupeiqi iter 函式用於迭代器,之所以列表 字典 元組可以進行for迴圈,是因為...