国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
燒瓶擴(kuò)展
>語(yǔ)句。
首頁(yè) 后端開(kāi)發(fā) Python教程 燒瓶的簡(jiǎn)介:添加聯(lián)系頁(yè)面

燒瓶的簡(jiǎn)介:添加聯(lián)系頁(yè)面

Feb 28, 2025 am 10:03 AM

在這個(gè)迷你系列的上一篇文章中,我們使用Blask構(gòu)建了一個(gè)簡(jiǎn)單的網(wǎng)站,其中包含“主頁(yè)”和“關(guān)于”頁(yè)面,使用廣義工作流,我們可以將其應(yīng)用于其他基于燒瓶的Web應(yīng)用程序。在本課程中,我將演示如何添加一個(gè)允許用戶(hù)向您發(fā)送消息的聯(lián)系頁(yè)面。

>本文中使用的代碼可以在GitHub上找到。?


燒瓶擴(kuò)展

燒瓶沒(méi)有架子上的許多功能,因此很容易拿起并學(xué)習(xí)。沒(méi)有用于添加和更新內(nèi)容的數(shù)據(jù)庫(kù)交互或管理員接口的對(duì)象相關(guān)映射器。它僅提供一小部分功能,其中兩個(gè)功能已經(jīng)使用了 - render_template()

。

而不是使用額外功能運(yùn)輸,燒瓶的擴(kuò)展模型允許您根據(jù)需要添加功能。燒瓶擴(kuò)展名是一個(gè)軟件包,可在您的應(yīng)用中添加特定功能。例如,Blask-sqlalchemy向您的應(yīng)用增加了數(shù)據(jù)庫(kù)支持,而B(niǎo)lask-Login則添加了登錄/注銷(xiāo)支持。 You can find a full list of extensions in the Flask Extension Registry.


To create a contact page, we'll use Flask-WTF to handle and validate form data and Flask-Mail to email the form data to you.

Flask-WTF

flask-wtf diagramFlask-WTF is an extension that handles and validates form data.這意味著什么?查看以下圖:
  1. >用戶(hù)向包含表格的網(wǎng)頁(yè)發(fā)布get請(qǐng)求。
  2. >
  3. >用戶(hù)填寫(xiě)表單。>
  4. >
  5. >
  6. >

按鈕,通過(guò)post request >>如果所有字段驗(yàn)證,則在管道中的下一步中使用表單信息。

>

>一個(gè)聯(lián)系頁(yè)面將為用戶(hù)的名稱(chēng),電子郵件,主題和消息提供字段。在燒瓶中,我們將將表單張貼到routes.py 內(nèi)部的功能中。此功能稱(chēng)為表單處理程序。我們將運(yùn)行一些驗(yàn)證檢查,如果任何輸入沒(méi)有通過(guò)Muster,我們將刷新頁(yè)面以顯示描述錯(cuò)誤的消息。一旦所有驗(yàn)證檢查通過(guò),我們將使用表單數(shù)據(jù)進(jìn)行下一步:將消息發(fā)送給您,網(wǎng)站所有者。 這是表單處理和驗(yàn)證的工作方式?,F(xiàn)在我們實(shí)際定義表格的位置?我們可以使用python腳本的動(dòng)作屬性編寫(xiě)HTML。 Python腳本將鏡像表單以捕獲每個(gè)表單字段并驗(yàn)證表單字段數(shù)據(jù)。但是,如果我們使用此策略,我們實(shí)際上將兩次定義表格 - 前端和后端一次。。

>只能在Python腳本中定義一次形式將是很棒的。這正是玻璃WTF允許我們做的事情。我們將僅在Python腳本中定義一次表單,然后讓Flask-WTF為我們生成表格的HTML。所有這一切的目的是將呈現(xiàn)與內(nèi)容分開(kāi)。

>足夠的chat不休。讓我們代碼。

>創(chuàng)建一個(gè)表單

作為第一步,讓我們回到上次創(chuàng)建的孤立開(kāi)發(fā)環(huán)境中。

>

$ cd flaskapp<br>$ . bin/activate<br>
>

pip install -U Flask-WTF<br>

現(xiàn)在,我們已經(jīng)輸入并激活了開(kāi)發(fā)環(huán)境,我們可以安全地安裝flask-wtf:

routes.py

,它映射到函數(shù)。讓我們不要用無(wú)關(guān)的代碼混亂。相反,創(chuàng)建一個(gè)名為
from flask_wtf import FlaskForm<br>from wtforms import StringField, TextAreaField, SubmitField<br><br><br><br>class ContactForm(FlaskForm):<br>  name = StringField("Name")<br>  email = StringField("Email")<br>  subject = StringField("Subject")<br>  message = TextAreaField("Message")<br>  submit = SubmitField("Send") <br>
forms.py

的新文件,然后將其放在app/文件夾中。

app/forms.pys.py

from flask import Flask, render_template<br>from forms import ContactForm<br>

我們剛剛創(chuàng)建了一個(gè)表單。我們做了什么?首先,我們從Blask-wtf Contactform導(dǎo)入了幾個(gè)有用的類(lèi)腳本。

app/utaes.py

接下來(lái),配置flask-wtf來(lái)處理稱(chēng)為跨站點(diǎn)請(qǐng)求偽造(CSRF)的安全性利用(CSRF)。在一個(gè)完美的世界中,您的服務(wù)器僅處理屬于您的Web應(yīng)用程序的表單。換句話說(shuō),您的服務(wù)器只能處理和驗(yàn)證您創(chuàng)建的表單。但是,攻擊者有可能在自己的網(wǎng)站上創(chuàng)建表單,填寫(xiě)惡意信息,然后將其提交給您的服務(wù)器。如果您的服務(wù)器接受這些惡意信息,那么接下來(lái)可能會(huì)發(fā)生各種壞事。

您可以通過(guò)確保表單提交源自您的Web應(yīng)用程序來(lái)防止CSRF攻擊。做到這一點(diǎn)的一種方法是將隱藏在您的HTML /Contact的獨(dú)特令牌,函數(shù)contact()>中,我們首先在第三行中創(chuàng)建一個(gè)新的觸點(diǎn)表單的新實(shí)例,并將其發(fā)送到第四行中的名為contact.html的網(wǎng)絡(luò)模板。不過(guò),我們將很快創(chuàng)建此Web模板。>我們?nèi)匀挥幸恍┕ぷ饕觥I蠄D顯示,如果將Get請(qǐng)求發(fā)送到服務(wù)器,則應(yīng)將包含表單的網(wǎng)頁(yè)檢索并加載到瀏覽器中。如果服務(wù)器收到發(fā)布請(qǐng)求,則函數(shù)應(yīng)捕獲表單字段數(shù)據(jù)并檢查是否有效。用python的術(shù)語(yǔ),可以在上一篇文章中向render_template()的if ... else邏輯表示此邏輯,因此在這里我們導(dǎo)入了更多燒瓶類(lèi),名為request>確定當(dāng)前的http方法是get還是帖子。接下來(lái)是contact()函數(shù)(第9-13行)。在郵政請(qǐng)求的情況下,一個(gè)字符串指示已發(fā)布表格。

此字符串是臨時(shí)占位符,我們將在本文的最后一步中用真實(shí)代碼替換。否則,如果請(qǐng)求使用get,我們將返回包含表單的Web模板contact.html。文件夾。

app/app/templates/contact.html

>與 home.html
$ cd flaskapp<br>$ . bin/activate<br>
和> html它自己的文字。我們首先通過(guò)將操作屬性設(shè)置為 /聯(lián)系人映射到函數(shù)contact()>執(zhí)行,其中命名為contactform> class將映射到函數(shù)contact()類(lèi)別,將表格映射到web template contact.html。 html。渲染的html被發(fā)送回到。。
  • routes.py> button。>
  • >通過(guò)使用Form Validators執(zhí)行表單驗(yàn)證。幸運(yùn)的是,Blask-WTF配備了許多有用的內(nèi)置驗(yàn)證器,我們可以立即使用。我們將將這些驗(yàn)證器從[validators = datarequired()]
  • 的datarequired 內(nèi)置驗(yàn)證器放入每個(gè)表單字段以驗(yàn)證其存在。 Notice that this validator is inside a Python list, meaning that we can easily add more validators to this list.
  • Next, let's require email addresses to match the pattern Email()
  • validator requires the email_validator package to be installed, so install it with pip as follows:
  • Update
  • app/forms.py as以下內(nèi)容:
  • >用于我們的表單驗(yàn)證。
  • 閃爍的錯(cuò)誤消息
  • 回顧原始圖,如果任何驗(yàn)證檢查失敗,則聯(lián)系頁(yè)面應(yīng)使用錯(cuò)誤消息重新填充,以便用戶(hù)可以解決錯(cuò)誤并重試。此錯(cuò)誤消息僅在驗(yàn)證失敗時(shí)才出現(xiàn)并在確定錯(cuò)誤時(shí)消失。>我們的下一步是在驗(yàn)證失敗時(shí)向用戶(hù)發(fā)送此類(lèi)臨時(shí)錯(cuò)誤消息。燒瓶通過(guò)在腳本開(kāi)頭的flash()

    函數(shù)。

    $ cd flaskapp<br>$ . bin/activate<br>
    >

    > 在到服務(wù)器的聯(lián)系表帖子后,任何驗(yàn)證失敗都應(yīng)通過(guò)有用的錯(cuò)誤消息重新加載表單。否則,輸入數(shù)據(jù)可用于將來(lái)處理。再一次,可以在if ... else邏輯中表達(dá)此邏輯。發(fā)布的錯(cuò)誤消息表格

    ,表明該表格已成功提交。

    接下來(lái),讓我們修改contact.html

    ,以便它可以接收并顯示這些臨時(shí)錯(cuò)誤消息。請(qǐng)參閱以下塊:
    pip install -U Flask-WTF<br>

    >循環(huán)的函數(shù)。將此代碼塊添加到

    contact.html

    之后&lt; form&gt;tag。 Pretty。

    from flask_wtf import FlaskForm<br>from wtforms import StringField, TextAreaField, SubmitField<br><br><br><br>class ContactForm(FlaskForm):<br>  name = StringField("Name")<br>  email = StringField("Email")<br>  subject = StringField("Subject")<br>  message = TextAreaField("Message")<br>  submit = SubmitField("Send") <br>

    main.css

    打開(kāi)瀏覽器并訪問(wèn)http:// localhost:5000/contact。將所有字段留為空白,然后單擊

    發(fā)送以測(cè)試表單驗(yàn)證和錯(cuò)誤消息閃爍工作。

    from flask import Flask, render_template<br>from forms import ContactForm<br>
    這很甜蜜!如果驗(yàn)證檢查失敗,我們已成功將錯(cuò)誤消息發(fā)送給我們的聯(lián)系表。實(shí)際上,我們可以做得更好。與其為所有失敗的驗(yàn)證檢查提供一個(gè)通用錯(cuò)誤消息,不如為每個(gè)失敗的驗(yàn)證檢查提供一個(gè)特定的錯(cuò)誤消息。例如,如果用戶(hù)忘記填寫(xiě)主題字段,則一條特定的錯(cuò)誤消息,請(qǐng)輸入您的姓名

    。我們可以很容易地完成此操作,因此讓我們首先在每個(gè)驗(yàn)證器中寫(xiě)下我們的特定錯(cuò)誤消息。接下來(lái),讓我們修改contact.html以接收并顯示這些特定的錯(cuò)誤消息。前面,我們依賴(lài)于每個(gè)表單字段的函數(shù)錯(cuò)誤

    屬性來(lái)拉出特定的錯(cuò)誤消息,并使用jinja2 messages

    和message> class在它們上循環(huán)循環(huán),以構(gòu)成一個(gè)新的電子郵件,并包含包含app.config的app.config的app.config [aim_usern appername flost的郵件

    變量,我們可以17)。
    {% extends "layout.html" %}<br>{% block content %}<br><br>  <h2>Contact</h2><br>  <br>  <form action="{{ url_for('contact') }}" method=post><br>    {{ form.hidden_tag() }}<br>    {{ form.name.label }}<br>    {{ form.name }}<br>    {{ form.email.label }}<br>    {{ form.email }}<br>    {{ form.subject.label }}<br>    {{ form.subject }}<br>    {{ form.message.label }}<br>    {{ form.message }}<br>    {{ form.submit }}<br>  </form><br>{% endblock %}<br>

    >您可能已經(jīng)看到小組使用聯(lián)系電子郵件地址,例如support@example.com。如果您擁有自己的域并可以創(chuàng)建一個(gè)新的聯(lián)系電子郵件地址,請(qǐng)繼續(xù)并將該電子郵件地址放在請(qǐng)求中。我們已經(jīng)在form.validate()中添加了邏輯。因此,讓我們繼續(xù)前進(jìn),在消息類(lèi)中添加邏輯,將主題行,“來(lái)自”地址和“到”地址。然后,我們使用app.config [“ mail_username”]收集聯(lián)系表的主題字段數(shù)據(jù),因此這就是我們?cè)谶@里使用的內(nèi)容。該電子郵件將發(fā)送到您的個(gè)人電子郵件地址,以便您可以接收并響應(yīng)新消息。接下來(lái),我們將編寫(xiě)電子郵件本身(第11-14行)。我們包括用戶(hù)的姓名,電子郵件和消息。我使用Python的字符串格式化運(yùn)算符郵件。SEND(MSG)

    發(fā)送電子郵件(第15行)。

    讓我們看看一切是否有效。訪問(wèn)http:// localhost:5000/聯(lián)系人,填寫(xiě)每個(gè)字段,然后單擊“發(fā)送”。如果一切順利,您將收到來(lái)自燒瓶應(yīng)用程序的新電子郵件。

    >整理

    >

    >我們的倒數(shù)第二步是刪除臨時(shí)占位符字符串,如果... else

    >語(yǔ)句。

    > 在成功提交的觸點(diǎn)表格中,我們會(huì)從

    py

    froce中發(fā)送成功標(biāo)志。 contact.html

    。

    >我們將放置true ,我們將顯示感謝消息。否則,我們將顯示聯(lián)系表。 %}

    表示,如果我們從 routes.py

    發(fā)送的成功標(biāo)志設(shè)置為&lt; p&gt;謝謝您的消息。我們很快就會(huì)與您聯(lián)系。否則,請(qǐng)按照&lt; header&gt; 元素遵循if ... else 語(yǔ)句。讓我們?cè)诼?lián)系頁(yè)面(第8行)。文章,我們?cè)跓繎?yīng)用程序中添加了一個(gè)包含表格的聯(lián)系頁(yè)面。表格出現(xiàn)在Web應(yīng)用程序中的幾個(gè)地方,最著名的是在注冊(cè)和登錄期間??梢赃m應(yīng)此工作流程以滿(mǎn)足這些需求。在創(chuàng)建聯(lián)系頁(yè)面時(shí),我們學(xué)會(huì)了如何使用燒瓶擴(kuò)展。

    $ cd flaskapp<br>$ . bin/activate<br>

    燒瓶擴(kuò)展是簡(jiǎn)單,功能強(qiáng)大的工具,可擴(kuò)展基于燒瓶的應(yīng)用的功能。>>

    >查看燒瓶擴(kuò)展注冊(cè)表,以探索您可以集成到應(yīng)用程序中的更多擴(kuò)展名。

  • 以上是燒瓶的簡(jiǎn)介:添加聯(lián)系頁(yè)面的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

    本站聲明
    本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

    熱AI工具

    Undress AI Tool

    Undress AI Tool

    免費(fèi)脫衣服圖片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用于從照片中去除衣服的在線人工智能工具。

    Clothoff.io

    Clothoff.io

    AI脫衣機(jī)

    Video Face Swap

    Video Face Swap

    使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費(fèi)的代碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級(jí)代碼編輯軟件(SublimeText3)

    熱門(mén)話題

    Python的UNITDEST或PYTEST框架如何促進(jìn)自動(dòng)測(cè)試? Python的UNITDEST或PYTEST框架如何促進(jìn)自動(dòng)測(cè)試? Jun 19, 2025 am 01:10 AM

    Python的unittest和pytest是兩種廣泛使用的測(cè)試框架,它們都簡(jiǎn)化了自動(dòng)化測(cè)試的編寫(xiě)、組織和運(yùn)行。1.二者均支持自動(dòng)發(fā)現(xiàn)測(cè)試用例并提供清晰的測(cè)試結(jié)構(gòu):unittest通過(guò)繼承TestCase類(lèi)并以test\_開(kāi)頭的方法定義測(cè)試;pytest則更為簡(jiǎn)潔,只需以test\_開(kāi)頭的函數(shù)即可。2.它們都內(nèi)置斷言支持:unittest提供assertEqual、assertTrue等方法,而pytest使用增強(qiáng)版的assert語(yǔ)句,能自動(dòng)顯示失敗詳情。3.均具備處理測(cè)試準(zhǔn)備與清理的機(jī)制:un

    如何將Python用于數(shù)據(jù)分析和與Numpy和Pandas等文庫(kù)進(jìn)行操作? 如何將Python用于數(shù)據(jù)分析和與Numpy和Pandas等文庫(kù)進(jìn)行操作? Jun 19, 2025 am 01:04 AM

    pythonisidealfordataanalysisionduetonumpyandpandas.1)numpyExccelSatnumericalComputationswithFast,多dimensionalArraysAndRaysAndOrsAndOrsAndOffectorizedOperationsLikenp.sqrt()

    什么是動(dòng)態(tài)編程技術(shù),如何在Python中使用它們? 什么是動(dòng)態(tài)編程技術(shù),如何在Python中使用它們? Jun 20, 2025 am 12:57 AM

    動(dòng)態(tài)規(guī)劃(DP)通過(guò)將復(fù)雜問(wèn)題分解為更簡(jiǎn)單的子問(wèn)題并存儲(chǔ)其結(jié)果以避免重復(fù)計(jì)算,來(lái)優(yōu)化求解過(guò)程。主要方法有兩種:1.自頂向下(記憶化):遞歸分解問(wèn)題,使用緩存存儲(chǔ)中間結(jié)果;2.自底向上(表格化):從基礎(chǔ)情況開(kāi)始迭代構(gòu)建解決方案。適用于需要最大/最小值、最優(yōu)解或存在重疊子問(wèn)題的場(chǎng)景,如斐波那契數(shù)列、背包問(wèn)題等。在Python中,可通過(guò)裝飾器或數(shù)組實(shí)現(xiàn),并應(yīng)注意識(shí)別遞推關(guān)系、定義基準(zhǔn)情況及優(yōu)化空間復(fù)雜度。

    如何使用__ITER__和__NEXT __在Python中實(shí)現(xiàn)自定義迭代器? 如何使用__ITER__和__NEXT __在Python中實(shí)現(xiàn)自定義迭代器? Jun 19, 2025 am 01:12 AM

    要實(shí)現(xiàn)自定義迭代器,需在類(lèi)中定義__iter__和__next__方法。①__iter__方法返回迭代器對(duì)象自身,通常為self,以兼容for循環(huán)等迭代環(huán)境;②__next__方法控制每次迭代的值,返回序列中的下一個(gè)元素,當(dāng)無(wú)更多項(xiàng)時(shí)應(yīng)拋出StopIteration異常;③需正確跟蹤狀態(tài)并設(shè)置終止條件,避免無(wú)限循環(huán);④可封裝復(fù)雜邏輯如文件行過(guò)濾,同時(shí)注意資源清理與內(nèi)存管理;⑤對(duì)簡(jiǎn)單邏輯可考慮使用生成器函數(shù)yield替代,但需結(jié)合具體場(chǎng)景選擇合適方式。

    Python編程語(yǔ)言及其生態(tài)系統(tǒng)的新興趨勢(shì)或未來(lái)方向是什么? Python編程語(yǔ)言及其生態(tài)系統(tǒng)的新興趨勢(shì)或未來(lái)方向是什么? Jun 19, 2025 am 01:09 AM

    Python的未來(lái)趨勢(shì)包括性能優(yōu)化、更強(qiáng)的類(lèi)型提示、替代運(yùn)行時(shí)的興起及AI/ML領(lǐng)域的持續(xù)增長(zhǎng)。首先,CPython持續(xù)優(yōu)化,通過(guò)更快的啟動(dòng)時(shí)間、函數(shù)調(diào)用優(yōu)化及擬議中的整數(shù)操作改進(jìn)提升性能;其次,類(lèi)型提示深度集成至語(yǔ)言與工具鏈,增強(qiáng)代碼安全性與開(kāi)發(fā)體驗(yàn);第三,PyScript、Nuitka等替代運(yùn)行時(shí)提供新功能與性能優(yōu)勢(shì);最后,AI與數(shù)據(jù)科學(xué)領(lǐng)域持續(xù)擴(kuò)張,新興庫(kù)推動(dòng)更高效的開(kāi)發(fā)與集成。這些趨勢(shì)表明Python正不斷適應(yīng)技術(shù)變化,保持其領(lǐng)先地位。

    如何使用插座在Python中執(zhí)行網(wǎng)絡(luò)編程? 如何使用插座在Python中執(zhí)行網(wǎng)絡(luò)編程? Jun 20, 2025 am 12:56 AM

    Python的socket模塊是網(wǎng)絡(luò)編程的基礎(chǔ),提供低級(jí)網(wǎng)絡(luò)通信功能,適用于構(gòu)建客戶(hù)端和服務(wù)器應(yīng)用。要設(shè)置基本TCP服務(wù)器,需使用socket.socket()創(chuàng)建對(duì)象,綁定地址和端口,調(diào)用.listen()監(jiān)聽(tīng)連接,并通過(guò).accept()接受客戶(hù)端連接。構(gòu)建TCP客戶(hù)端需創(chuàng)建socket對(duì)象后調(diào)用.connect()連接服務(wù)器,再使用.sendall()發(fā)送數(shù)據(jù)和.recv()接收響應(yīng)。處理多個(gè)客戶(hù)端可通過(guò)1.線程:每次連接啟動(dòng)新線程;2.異步I/O:如asyncio庫(kù)實(shí)現(xiàn)無(wú)阻塞通信。注意事

    如何在Python中切片列表? 如何在Python中切片列表? Jun 20, 2025 am 12:51 AM

    Python列表切片的核心答案是掌握[start:end:step]語(yǔ)法并理解其行為。1.列表切片的基本格式為list[start:end:step],其中start是起始索引(包含)、end是結(jié)束索引(不包含)、step是步長(zhǎng);2.省略start默認(rèn)從0開(kāi)始,省略end默認(rèn)到末尾,省略step默認(rèn)為1;3.獲取前n項(xiàng)用my_list[:n],獲取后n項(xiàng)用my_list[-n:];4.使用step可跳過(guò)元素,如my_list[::2]取偶數(shù)位,負(fù)step值可反轉(zhuǎn)列表;5.常見(jiàn)誤區(qū)包括end索引不

    Python類(lèi)中的多態(tài)性 Python類(lèi)中的多態(tài)性 Jul 05, 2025 am 02:58 AM

    多態(tài)是Python面向?qū)ο缶幊讨械暮诵母拍?,指“一種接口,多種實(shí)現(xiàn)”,允許統(tǒng)一處理不同類(lèi)型的對(duì)象。1.多態(tài)通過(guò)方法重寫(xiě)實(shí)現(xiàn),子類(lèi)可重新定義父類(lèi)方法,如Animal類(lèi)的speak()方法在Dog和Cat子類(lèi)中有不同實(shí)現(xiàn)。2.多態(tài)的實(shí)際用途包括簡(jiǎn)化代碼結(jié)構(gòu)、增強(qiáng)可擴(kuò)展性,例如圖形繪制程序中統(tǒng)一調(diào)用draw()方法,或游戲開(kāi)發(fā)中處理不同角色的共同行為。3.Python實(shí)現(xiàn)多態(tài)需滿(mǎn)足:父類(lèi)定義方法,子類(lèi)重寫(xiě)該方法,但不要求繼承同一父類(lèi),只要對(duì)象實(shí)現(xiàn)相同方法即可,這稱(chēng)為“鴨子類(lèi)型”。4.注意事項(xiàng)包括保持方

    See all articles