python2和python3的區(qū)別

成都創(chuàng)新互聯(lián)專注于峨山縣企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城網(wǎng)站制作。峨山縣網(wǎng)站建設(shè)公司,為峨山縣等地區(qū)提供建站服務(wù)。全流程專業(yè)公司,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
1.性能
Py3.0運行 pystone benchmark的速度比Py2.5慢30%。Guido認(rèn)為Py3.0有極大的優(yōu)化空間,在字符串和整形操作上可以取得很好的優(yōu)化結(jié)果。
Py3.1性能比Py2.5慢15%,還有很大的提升空間。?
2.編碼?
Py3.X源碼文件默認(rèn)使用utf-8編碼,這就使得以下代碼是合法的:?
中國 = 'china'?
print(中國)?
china
3. 語法
1)去除了,全部改用!=
在Python 2里,為了得到一個任意對象的字符串表示,有一種把對象包裝在反引號里(比如`x`)的特殊語法。在Python 3里,這種能力仍然存在,但是你不能再使用反引號獲得這種字符串表示了。你需要使用全局函數(shù)repr()。
Notes
Python 2
Python 3
①
`x` ? ?repr(x) ?
②
`'PapayaWhip' + `2`` ? ?repr('PapayaWhip'+?repr(2)) ?
Note:x可以是任何東西?—?一個類,函數(shù),模塊,基本數(shù)據(jù)類型,等等。repr()函數(shù)可以使用任何類型的參數(shù)。
2)去除``,全部改用repr()
3)關(guān)鍵詞加入as 和with,還有True,False,None
4)整型除法返回浮點數(shù),要得到整型結(jié)果,請使用//
由于人們常常會忽視Python 3在整數(shù)除法上的改動(寫錯了也不會觸發(fā)Syntax Error),所以在移植代碼或在Python 2中執(zhí)行Python 3的代碼時,需要特別注意這個改動。
所以,我還是會在Python 3的腳本中嘗試用float(3)/2或 3/2.0代替3/2,以此來避免代碼在Python 2環(huán)境下可能導(dǎo)致的錯誤(或與之相反,在Python 2腳本中用from __future__ import division來使用Python 3的除法)。
Python 2
print?'3?/?2?=',?3?/?2?print?'3?//?2?=',?3?//?2?print?'3?/?2.0?=',?3?/?2.0?print?'3?//?2.0?=',?3?//?2.0?
3?/?2?=?1?3?//?2?=?1?3?/?2.0?=?1.5?3?//?2.0?=?1.0?
默認(rèn),如果兩個操作數(shù)都是整數(shù),Python 2 自動執(zhí)行整型計算。
Python 3
print('3?/?2?=',?3?/?2)?print('3?//?2?=',?3?//?2)?print('3?/?2.0?=',?3?/?2.0)?print('3?//?2.0?=',?3?//?2.0)?
3?/?2?=?1.5?3?//?2?=?1?3?/?2.0?=?1.5?3?//?2.0?=?1.0
Note: 需要注意的是“雙劃線”(//)操作符將一直執(zhí)行整除,而不管操作數(shù)的類型,這就是為什么 5.0//2.0 值為 2.0。Python 3 中,/ 操作符是做浮點除法,而 // 是做整除(即商沒有余數(shù),比如 10 // 3 其結(jié)果就為 3,余數(shù)會被截除掉,而 (-7) // 3 的結(jié)果卻是 -3。這個算法與其它很多編程語言不一樣,需要注意,它們的整除運算會向0的方向取值。而在 Python 2 中,/ 就是整除,即和 Python 3 中的 // 操作符一樣。
5)加入nonlocal語句。使用noclocal x可以直接指派外圍(非全局)變量
6)print
去除print語句,加入print()函數(shù)實現(xiàn)相同的功能。同樣的還有 exec語句,已經(jīng)改為exec()函數(shù)
在Python 2里,print是一個語句。無論你想輸出什么,只要將它們放在print關(guān)鍵字后邊就可以。
Python 3里,print()是一個函數(shù)。就像其他的函數(shù)一樣,print()需要你將想要輸出的東西作為參數(shù)傳給它。
例如:?
2.X: print "The answer is", 2*2?
3.X: print("The answer is", 2*2)?
2.X: print x, # 使用逗號結(jié)尾禁止換行?
3.X: print(x, end=" ") # 使用空格代替換行
在Python 2里,如果你使用一個逗號(,)作為print語句的結(jié)尾,它將會用空格分隔輸出的結(jié)果,然后在輸出一個尾隨的空格(trailing space),而不輸出回車(carriage return)。在Python 3里,通過把end=' '作為一個關(guān)鍵字參數(shù)傳給print()可以實現(xiàn)同樣的效果。參數(shù)end的默認(rèn)值為'\n',所以通過重新指定end參數(shù)的值,可以取消在末尾輸出回車符。
2.X: print # 輸出新行?
3.X: print() # 輸出新行?
2.X: print sys.stderr, "fatal error"?
3.X: print("fatal error", file=sys.stderr)
在Python 2里,你可以通過使用pipe_name語法,把輸出重定向到一個管道,比如sys.stderr。在Python 3里,你可以通過將管道作為關(guān)鍵字參數(shù)file的值傳遞給print()來完成同樣的功能。參數(shù)file的默認(rèn)值為std.stdout,所以重新指定它的值將會使print()輸出到一個另外一個管道。
2.X: print (x, y) # 輸出repr((x, y))?
3.X: print((x, y)) # 不同于print(x, y)!
exec語句
exec()函數(shù)使用一個包含任意Python代碼的字符串作為參數(shù),然后就像執(zhí)行語句或者表達式一樣執(zhí)行它。exec()跟eval()是相似的,但是exec()更加強大并更具有技巧性。eval()函數(shù)只能執(zhí)行單獨一條表達式,但是exec()能夠執(zhí)行多條語句,導(dǎo)入(import),函數(shù)聲明?—?實際上整個Python程序的字符串表示也可以。
Notes
Python 2
Python 3
①
exec?codeString ? ?exec(codeString) ?
②
exec?codeString?in?a_global_namespace ? ?exec(codeString,?a_global_namespace) ?
③
exec?codeString?in?a_global_namespace,?a_local_namespace ? ?exec(codeString,?a_global_namespace,?a_local_namespace) ?
在最簡單的形式下,因為exec()現(xiàn)在是一個函數(shù),而不是語句,2to3會把這個字符串形式的代碼用括號圍起來。
Python 2里的exec語句可以指定名字空間,代碼將在這個由全局對象組成的私有空間里執(zhí)行。Python 3也有這樣的功能;你只需要把這個名字空間作為第二個參數(shù)傳遞給exec()函數(shù)。
更加神奇的是,Python 2里的exec語句還可以指定一個本地名字空間(比如一個函數(shù)里聲明的變量)。在Python 3里,exec()函數(shù)也有這樣的功能。
execfile語句
就像以前的exec語句,Python 2里的execfile語句也可以像執(zhí)行Python代碼那樣使用字符串。不同的是exec使用字符串,而execfile則使用文件。在Python 3里,execfile語句已經(jīng)被去掉了。如果你真的想要執(zhí)行一個文件里的Python代碼(但是你不想導(dǎo)入它),你可以通過打開這個文件,讀取它的內(nèi)容,然后調(diào)用compile()全局函數(shù)強制Python解釋器編譯代碼,然后調(diào)用新的exec()函數(shù)。
Notes
Python 2
Python 3
execfile('a_filename') ? ?exec(compile(open('a_filename').read(),'a_filename','exec')) ? ?
7)輸入函數(shù)改變了,刪除了raw_input,用input代替: Python 2有兩個全局函數(shù),用來在命令行請求用戶輸入。第一個叫做input(),它等待用戶輸入一個Python表達式(然后返回結(jié)果)。第二個叫做raw_input(),用戶輸入什么它就返回什么。這讓初學(xué)者非常困惑,并且這被廣泛地看作是Python語言的一個“肉贅”(wart)。Python 3通過重命名raw_input()為input(),從而切掉了這個肉贅,所以現(xiàn)在的input()就像每個人最初期待的那樣工作。
2.X:guess = int(raw_input('Enter an integer : ')) # 讀取鍵盤輸入的方法?
3.X:guess = int(input('Enter an integer : '))
Note:如果你真的想要請求用戶輸入一個Python表達式,計算結(jié)果,可以通過調(diào)用input()函數(shù)然后把返回值傳遞給eval()。
I/O方法xreadlines()
在Python 2里,文件對象有一個xreadlines()方法,它返回一個迭代器,一次讀取文件的一行。這在for循環(huán)中尤其有用。事實上,后來的Python 2版本給文件對象本身添加了這樣的功能。
在Python 3里,xreadlines()方法不再可用了。2to3可以解決簡單的情況,但是一些邊緣案例則需要人工介入。
Notes
Python 2
Python 3
①
for line in a_file.xreadlines(): ? ?for line in a_file: ? ?
②
for line in a_file.xreadlines(5): ? ?no change (broken) ? ?
如果你以前調(diào)用沒有參數(shù)的xreadlines(),2to3會把它轉(zhuǎn)換成文件對象本身。在Python 3里,這種轉(zhuǎn)換后的代碼可以完成前同樣的工作:一次讀取文件的一行,然后執(zhí)行for循環(huán)的循環(huán)體。
如果你以前使用一個參數(shù)(每次讀取的行數(shù))調(diào)用xreadlines(),2to3不能為你完成從Python 2到Python 3的轉(zhuǎn)換,你的代碼會以這樣的方式失敗:AttributeError: '_io.TextIOWrapper' object has no attribute 'xreadlines'。你可以手工的把xreadlines()改成readlines()以使代碼能在Python 3下工作。(readline()方法在Python 3里返回迭代器,所以它跟Python 2里的xreadlines()效率是不相上下的。)
8)改變了順序操作符的行為,例如xy,當(dāng)x和y類型不匹配時拋出TypeError而不是返回隨即的 bool值
9)去除元組參數(shù)解包。不能def(a, (b, c)):pass這樣定義函數(shù)了
10)新式的8進制字變量,相應(yīng)地修改了oct()函數(shù)。
2.X的方式如下:?
0666?
438?
oct(438)?
'0666'
3.X這樣:?
0666?
SyntaxError: invalid token (pyshell#63, line 1)?
0o666?
438?
oct(438)?
'0o666'
11)增加了 2進制字面量和bin()函數(shù)?
bin(438)?
'0b110110110'?
_438 = '0b110110110'?
_438?
'0b110110110'
12)擴展的可迭代解包。在Py3.X 里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求兩點:rest是list對象和seq是可迭代的。
13)新的super(),可以不再給super()傳參數(shù),
class C(object):?
def __init__(self, a):?
print('C', a)?
class D(C):?
def __init(self, a):?
super().__init__(a) # 無參數(shù)調(diào)用super()?
D(8)?
C 8?
__main__.D object at 0x00D7ED90
14)支持class decorator。用法與函數(shù)decorator一樣:
def foo(cls_a):?
def print_func(self):?
print('Hello, world!')?
cls_a.print = print_func?
return cls_a?
@foo?
class C(object):?
pass?
C().print()?
Hello, world!?
class decorator可以用來玩玩貍貓換太子的大把戲。更多請參閱PEP 3129
4. 字符串和字節(jié)串
Python 2有兩種字符串類型:Unicode字符串和非Unicode字符串。Python 2有基于ASCII的str()類型,其可通過單獨的unicode()函數(shù)轉(zhuǎn)成unicode類型,但沒有byte類型。
而在Python 3中,終于有了Unicode(utf-8)字符串,以及兩個字節(jié)類:bytes和bytearrays。Python 3只有一種類型:Unicode字符串(Unicode strings)。只有str一種類型,但它跟2.x版本的unicode幾乎一樣。
Notes
Python 2
Python 3
①
u'PapayaWhip' ? ?'PapayaWhip' ? ?
②
ur'PapayaWhip\foo' ? ?r'PapayaWhip\foo' ? ?
Python 2里的Unicode字符串在Python 3里即普通字符串,因為在Python 3里字符串總是Unicode形式的。
Unicode原始字符串(raw string)(使用這種字符串,Python不會自動轉(zhuǎn)義反斜線"\")也被替換為普通的字符串,因為在Python 3里,所有原始字符串都是以Unicode編碼的。
全局函數(shù)unicode()
Python 2有兩個全局函數(shù)可以把對象強制轉(zhuǎn)換成字符串:unicode()把對象轉(zhuǎn)換成Unicode字符串,還有str()把對象轉(zhuǎn)換為非Unicode字符串。
Python 3只有一種字符串類型,Unicode字符串,所以str()函數(shù)即可完成所有的功能。(unicode()函數(shù)在Python 3里不再存在了。)
Notes
Python 2
Python 3
unicode(anything) ? ?str(anything) ? ?
5.數(shù)據(jù)類型?
1)Python 2有為非浮點數(shù)準(zhǔn)備的int和long類型。int類型的最大值不能超過sys.maxint,而且這個最大值是平臺相關(guān)的。可以通過在數(shù)字的末尾附上一個L來定義長整型,顯然,它比int類型表示的數(shù)字范圍更大。
在Python 3里,只有一種整數(shù)類型int,大多數(shù)情況下,它很像Python 2里的長整型。
Note:檢查一個變量是否是整型,獲得它的數(shù)據(jù)類型,并與一個int類型(不是long)的作比較。你也可以使用isinstance()函數(shù)來檢查數(shù)據(jù)類型;再強調(diào)一次,使用int,而不是long,來檢查整數(shù)類型。
sys.maxint
由于長整型和整型被整合在一起了,sys.maxint常量不再精確。但是因為這個值對于檢測特定平臺的能力還是有用處的,所以它被Python 3保留,并且重命名為sys.maxsize。
Notes
Python 2
Python 3
①
from sys import maxint ? ?from sys import maxsize ? ?
②
global函數(shù)
用于在函數(shù)內(nèi)部將局部變量聲明為全局變量,聲明后重新賦值,外部變量會隨之改變,其作用域擴大。
如果是局部變量,即使名字相同,不會隨之改變
類,class,用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
函數(shù),是組織好的,可重復(fù)使用的,用來實現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。
函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫做用戶自定義函數(shù)。
python語言中類和函數(shù)的區(qū)別是什么?
1、規(guī)則不同
類是一種引用數(shù)據(jù)類型,類似于byte、short、int(char)、long、float、double等基本數(shù)據(jù)類型;
函數(shù)必須聲明后才可以被調(diào)用,調(diào)用格式為:函數(shù)名(實參)調(diào)用時函數(shù)名后的小括號中的實參必須和聲明函數(shù)時的函數(shù)括號中的形參個數(shù)相同。
2、主體不同
類是面向?qū)ο蟪绦蛟O(shè)計實現(xiàn)信息封裝的基礎(chǔ);
函數(shù)是指一段在一起的、可以做某一件事的子程序。
3、特點不同
類是一種用戶定義的引用數(shù)據(jù)類型,也稱類類型,每個類包含數(shù)據(jù)說明和一組操作數(shù)據(jù)或者傳遞消息的函數(shù),類的實例稱為對象;
函數(shù)分為全局函數(shù)、全局靜態(tài)函數(shù),在類中還可以定義構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、成員函數(shù)、友元函數(shù)、運算符重載函數(shù)、內(nèi)聯(lián)函數(shù)等。
在Python語言中,可以在函數(shù)中定義函數(shù)。 這種在函數(shù)中嵌套定義的函數(shù)也叫內(nèi)部函數(shù)。我們來看下面的代碼:
上述代碼中,定義了函數(shù)greet,在函數(shù)greet內(nèi)部又定義了一個函數(shù)inner_func, 并調(diào)用該函數(shù)打印了一串字符。
我們可以看到,內(nèi)部函數(shù)inner_func的定義和使用與普通函數(shù)基本相同。需要注意的是變量的作用域,在上述代碼中,函數(shù)參數(shù)name對于全局函數(shù)greet是局部變量,對內(nèi)部函數(shù)inner_func來說則是非局部變量。內(nèi)部函數(shù)對于非局部變量的訪問規(guī)則類似于標(biāo)準(zhǔn)的外部函數(shù)訪問全局變量。
從這個例子我們還可以看到內(nèi)部函數(shù)的一個作用,就是通過定義內(nèi)部函數(shù)的方式將一些功能隱藏起來,防止外部直接調(diào)用。常見的場景是,在一個復(fù)雜邏輯的函數(shù)中,將一些小的任務(wù)定義成內(nèi)部函數(shù),然后由這個外層函數(shù)使用,這樣可以使代碼更為清晰,易于維護。這些內(nèi)部函數(shù)只會在這個外層函數(shù)中使用,不能被其他函數(shù)或模塊使用。
在Python語言中, 函數(shù)也是對象,它可以被創(chuàng)建、賦值給變量,或者作為函數(shù)的返回值。我們來看下面這個例子。
在上述代碼中,在函數(shù)gen_greet內(nèi)部定義了inner_func函數(shù),并返回了一個inner_func函數(shù)對象。外部函數(shù)gen_greet返回了一個函數(shù)對象,所以像gen_greet這樣的函數(shù)也叫工廠函數(shù)。
在內(nèi)部函數(shù)inner_func中,使用了外部函數(shù)的傳參greet_words(非局部變量),以及函數(shù)的參數(shù)name(局部變量),來打印一個字符串。
接下來,調(diào)用gen_greet("Hello")創(chuàng)建一個函數(shù)對象say_hello,緊接著調(diào)用say_hello("Mr. Zhang"),輸出的結(jié)果為:Hello, Mr. Zhang!
同樣的,調(diào)用gen_greet("Hi")創(chuàng)建一個函數(shù)對象say_hi,調(diào)用say_hello("Mr. Zhang"),輸出的結(jié)果為:Hi,Tony!
我們可以發(fā)現(xiàn),gen_greet返回的函數(shù)對象具有記憶功能,它能夠把所需使用的非局部變量保存下來,用于后續(xù)被調(diào)用的時候使用。這種保存了非局部變量的函數(shù)對象被稱作閉包(closure)。
那么閉包是如何實現(xiàn)的呢?其實并不復(fù)雜,函數(shù)對象中有一個屬性__closure__,它就是在創(chuàng)建函數(shù)對象時用來保存這些非局部變量的。
__closure__屬性是一個元組或者None類型。在上述代碼中,我們可以通過下面方式查看:
函數(shù)的嵌套所實現(xiàn)的功能大都可以通過定義類的方式來實現(xiàn),而且類是更加面向?qū)ο蟮拇a編寫方式。
嵌套函數(shù)的一個主要用途是實現(xiàn)函數(shù)的裝飾器。我們看下面的代碼:
在上述代碼中,logger函數(shù)返回函數(shù)with_logging,with_logging則是打印了函數(shù)func的名稱及傳入的參數(shù),然后調(diào)用func, 并將參數(shù)傳遞給func。其中的@wraps(func)語句用于復(fù)制函數(shù)func的名稱、注釋文檔、參數(shù)列表等等,使得with_logging函數(shù)具有被裝飾的函數(shù)func相同的屬性。
代碼中接下來用@logger對函數(shù)power_func進行修飾,它的作用等同于下面的代碼:
可見,裝飾器@符其實就是上述代碼的精簡寫法。
通過了解了嵌套函數(shù)和閉包的工作原理,我們在使用過程中就能夠更加得心應(yīng)手了。
花了不少時間寫的,挺詳細的,希望采納。
#?引入operator模塊,用于給集合排序
import?operator
#?單行注釋用"#",多行注釋用??'''注釋內(nèi)容'''
#??定義一個學(xué)生類,類名用駝峰命名法
class?Student:
#?構(gòu)造方法,可用來創(chuàng)建對象格式?def?__init__(self,參數(shù))?參數(shù)個數(shù)自已定義,類型系統(tǒng)自動識別
def?__init__(self,?stu_no,?name,?base_score,?exam_score):
self.stu_no?=?stu_no??#?對象屬性賦值
self.name?=?name
self.base_score?=?base_score
self.exam_score?=?exam_score
#?定義計算總評函數(shù)?定義函數(shù)格式?def?函數(shù)名(self,?參數(shù)),self代表本對象
def?get_last_score(self):
#?return指定返回值,無return表示此函數(shù)無返回值
return?self.base_score?*?0.3?+?self.exam_score?*?0.7
#?類似toString方法,打印對象時,調(diào)用對象的該方法
def?__str__(self):
return?'學(xué)號:'?+?self.stu_no?+?'姓名:'?+?self.name?+?",平時成績:?"?+?str(self.base_score)?+?",考核成績:"?+?str(self.exam_score)
#?定義函數(shù),將對象集合寫到文件,上面三個函數(shù)有縮進,屬于Student類的函數(shù),本函數(shù)屬于全局函數(shù)
def?print_to_file(path,?stu_arr):
#?打開文件,操作完成后自動關(guān)閉文件
with?open(path,?'w')?as?file:
#?調(diào)用operator給集合排序
sort_attr?=?operator.attrgetter('stu_no')??#?指定排序?qū)傩?/p>
stu_arr.sort(key=sort_attr)??#?排序
for?stu?in?stu_list:
str?=?stu.__str__()??#?將對象轉(zhuǎn)換為字符串
file.write(str?+?'\r\n')??#?將字符串寫入文件
#?主函數(shù),運行的入口
if?__name__?==?'__main__':
#?創(chuàng)建幾個學(xué)生對象,按__init__的順序輸入?yún)?shù)
s1?=?Student('1001',?'zhangsan',?31,?69)
s2?=?Student('1003',?'wangwu',?28,?32)
s3?=?Student('1004',?'zhaoliu',?77,?78)
s4?=?Student('1002',?'lisi',?19,?89)
#?創(chuàng)建集合
stu_list?=?[s1,?s2,?s3,?s4]
#?文件路徑
f?=?'d:\\aaa.txt'
print_to_file(f,?stu_list)
一、主體不同
1、類:是面向?qū)ο蟪绦蛟O(shè)計實現(xiàn)信息封裝的基礎(chǔ)。
2、函數(shù):是指一段在一起的、可以做某一件事兒的程序。也叫做子程序、(OOP中)方法。
二、特點不同
1、類:是一種用戶定義的引用數(shù)據(jù)類型,也稱類類型。每個類包含數(shù)據(jù)說明和一組操作數(shù)據(jù)或傳遞消息的函數(shù)。類的實例稱為對象。
2、函數(shù):分為全局函數(shù)、全局靜態(tài)函數(shù);在類中還可以定義構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、成員函數(shù)、友元函數(shù)、運算符重載函數(shù)、內(nèi)聯(lián)函數(shù)等。
三、規(guī)則不同
1、類:實質(zhì)是一種引用數(shù)據(jù)類型,類似于byte、short、int(char)、long、float、double等基本數(shù)據(jù)類型,不同的是它是一種復(fù)雜的數(shù)據(jù)類型。
2、函數(shù):函數(shù)必須聲明后才可以被調(diào)用。調(diào)用格式為:函數(shù)名(實參)調(diào)用時函數(shù)名后的小括號中的實參必須和聲明函數(shù)時的函數(shù)括號中的形參個數(shù)相同。
參考資料來源:百度百科-函數(shù)
參考資料來源:百度百科-類
分享標(biāo)題:全局函數(shù)python 全局函數(shù)和成員函數(shù)的區(qū)別
文章起源:http://chinadenli.net/article42/hhjsec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、企業(yè)建站、Google、電子商務(wù)、網(wǎng)站設(shè)計、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)