javascript消除字符串兩邊空格的兩種方式,面向對象和函數式編程。python oop在調用時候的優點...

主要是javascript中消除字符串空格,比較兩種方式的不同

//面向對象,消除字符串兩邊空格
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
};//去左右空格的函數;
function trim(s){return s.replace(/(^\s*)|(\s*$)/g, "");
}
調用消除空格的兩種方式。
var defualtPhone = defualtDeliveryArray[0].getElementsByTagName("td")[4].textContent.trim();
 
var defualtPhone = trim(defualtDeliveryArray[0].getElementsByTagName("td")[4].textContent);
就是'  abcd  '.tirm()和trim('  abcd   ')的區別。
由于現在編程的都是智能編輯器,在使用面向對象的時候方法作為對象的一個屬性,在對象的命名空間下,很容易自動補全彈出來。

?

面向對象把某些方法幾種賦予給某一類的對象,無論在調用還是編輯器自動補全的時候優點太多了。

?

在python中,函數式編程和oop編程調用的區別是,假如有兩種類型

?

對object1類型的東西,需要傳給兩個函數處理。;

def fun1a(object1,*args,**kwargs):

? ? ? pass

?

def fun1b(object1,*args,**kwargs):

? ? ? ?pass

?

對object2類型的東西,需要傳給兩個函數處理。;

def fun2a(object2,*args,**kwargs):

? ? ? pass

?

def fun2b(object2,*args,**kwargs):

? ? ? ?pass

?

?

調用的時候,使用?fun1a(object1,*args,**kwargs) ?fun1b(object1,*args,**kwargs) ? ,?fun2a(object2,*args,**kwargs) ?fun2b(object2,*args,**kwargs) ??

傳函數的時候一定不要傳錯了,不能把object2類型的傳給fun1a 和fun1b這兩個函數處理,會出錯。

?

?

面向對象的時候,調用方式是:

a = A(*args,**kwargs)

a.fun1()

a.fun2()

?

b = B(*args,**kwargs)

b.fun3()

b.fun4()

b.fun5()

?

從調用來看,方法越多,面向對象實例化后可以少傳一些參數的次數。面向過程時候,如果fun4需要利用fun3的處理結果,還需要在fun3中各種return,同理還有fun6 fun7什么的,各種return不太好。為了保持多個函數處理同一個變量,還不得不使用一些global全局變量。

當使用面向對象時候,由于編輯器有智能補全功能,肯定不會出現b.fun1()這種亂調用的低級錯誤了,在獲取結果的時候,可以使用object2.xxx的方式獲得,不用到處去return和弄全局變量。

?

python里面的內置類型的方法,如果都改成由函數來處理,每個類型幾十種方法,那我們需要記住幾百種常見函數,記住什么函數能處理什么類型的對象,腦袋簡直要爆炸了。但是調用方法就簡單了,對象后面打個.號,就能自動顯示出對象有哪些屬性,有哪些方法,這些不用記得很清楚就行。python中只有一些很少的函數是各種對象通用的,比如字符串長度 列表長度 集合長度,統一傳給len()函數就能得出結果了,也可以使用str1.__len__()和list1.__len()__這種方式得出長度結果。

?

oop的優點不僅是從代碼組織上,更體現在調用上。那么多第三方庫在調用時候能用的那么爽,那是三方庫中用了大量oop,如果人家全用函數,在調用時候,體驗會大幅下降不爽。

?

此篇僅從js和py中的函數/方法調用形式,來淺顯說明oop的優點。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391525.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391525.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391525.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何使用Retrofit,OkHttp,Gson,Glide和Coroutines處理RESTful Web服務

Kriptofolio應用程序系列-第5部分 (Kriptofolio app series — Part 5) These days almost every Android app connects to internet to get/send data. You should definitely learn how to handle RESTful Web Services, as their correct implementation is the core knowle…

leetcode 90. 子集 II(回溯算法)

給你一個整數數組 nums ,其中可能包含重復元素,請你返回該數組所有可能的子集(冪集)。 解集 不能 包含重復的子集。返回的解集中,子集可以按 任意順序 排列。 示例 1: 輸入:nums [1,2,2] 輸…

robot:linux下安裝robot環境

https://www.cnblogs.com/lgqboke/p/8252488.html 轉載于:https://www.cnblogs.com/gcgc/p/11425588.html

感知器 機器學習_機器學習感知器實現

感知器 機器學習In this post, we are going to have a look at a program written in Python3 using numpy. We will discuss the basics of what a perceptron is, what is the delta rule and how to use it to converge the learning of the perceptron.在本文中&#xff0…

JS解析格式化Json插件,Json和XML互相轉換插件

Json對象轉換為XML字符串插件 http://www.jsons.cn/Down/jquery.json2xml.js var xml_content $.json2xml(json_object);XML字符串轉換為Json對象插件 http://www.jsons.cn/Down/jquery.xml2json.js var json_obj $.xml2json(xml_content);json序列化和反序列化方法插件 …

Python之集合、解析式,生成器,函數

一 集合 1 集合定義: 1 如果花括號為空,則是字典類型2 定義一個空集合,使用set 加小括號使用B方式定義集合時,集合內部的數必須是可迭代對象,數值類型的不可以 其中的值必須是可迭代對象,其中的元素必須是可…

深度神經網絡課程總結_了解深度神經網絡如何工作(完整課程)

深度神經網絡課程總結Even if you are completely new to neural networks, this course from Brandon Rohrer will get you comfortable with the concepts and math behind them.即使您是神經網絡的新手,Brandon Rohrer的本課程也會使您熟悉其背后的概念和數學。 …

leetcode 1006. 笨階乘

通常,正整數 n 的階乘是所有小于或等于 n 的正整數的乘積。例如,factorial(10) 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1。 相反,我們設計了一個笨階乘 clumsy:在整數的遞減序列中,我們以一個固定順序的操作符序列來…

python:如何傳遞一個列表參數

轉載于:https://www.cnblogs.com/gcgc/p/11426356.html

curl的安裝與簡單使用

2019獨角獸企業重金招聘Python工程師標準>>> windows 篇: 安裝篇: 我的電腦版本是windows7,64位,對應的curl下載地址如下: https://curl.haxx.se/download.html 直接找到下面的這個版本: curl-7.57.0.tar.g…

gcc 編譯過程

gcc 編譯過程從 hello.c 到 hello(或 a.out)文件, 必須歷經 hello.i、 hello.s、 hello.o,最后才得到 hello(或a.out)文件,分別對應著預處理、編譯、匯編和鏈接 4 個步驟,整個過程如圖 10.5 所示。 這 4 步大致的工作內容如下&am…

虎牙直播電影一天收入_電影收入

虎牙直播電影一天收入“美國電影協會(MPAA)的首席執行官J. Valenti提到:“沒有人能告訴您電影在市場上的表現。 直到電影在黑暗的劇院里放映并且銀幕和觀眾之間都散發出火花。 (“The CEO of Motion Picture Association of America (MPAA) J. Valenti mentioned th…

郵箱如何秘密發送多個人郵件_如何發送秘密消息

郵箱如何秘密發送多個人郵件Cryptography is the science of using codes and ciphers to protect messages, at its most basic level. Encryption is encoding messages with the intent of only allowing the intended recipient to understand the meaning of the message.…

leetcode 面試題 17.21. 直方圖的水量(單調棧)

給定一個直方圖(也稱柱狀圖),假設有人從上面源源不斷地倒水,最后直方圖能存多少水量?直方圖的寬度為 1。 上面是由數組 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方圖,在這種情況下,可以接 6 個單位的水(藍色部分表示水&a…

python:動態參數*args

動態參數 顧名思義,動態參數就是傳入的參數的個數是動態的,可以是1個、2個到任意個,還可以是0個。在不需要的時候,你完全可以忽略動態函數,不用給它傳遞任何值。 Python的動態參數有兩種,分別是*args和**kw…

3.5. Ticket

過程 3.4. Ticket 使用方法 New Ticket 新建Ticket, Ticket 可以理解為任務。 將Ticket 分配給團隊成員 受到Ticket后,一定要更改Ticket 為 accept , 這時在View Tickets 中將會看到該Ticket已經分配, 編碼過程 這里有一個特別的規定&…

Python操作Mysql實例代碼教程在線版(查詢手冊)_python

實例1、取得MYSQL的版本在windows環境下安裝mysql模塊用于python開發MySQL-python Windows下EXE安裝文件下載 復制代碼 代碼如下:# -*- coding: UTF-8 -*- #安裝MYSQL DB for pythonimport MySQLdb as mdb con None try: #連接mysql的方法:connect(ip,user,pass…

批判性思維_為什么批判性思維技能對數據科學家至關重要

批判性思維As Alexander Pope said, to err is human. By that metric, who is more human than us data scientists? We devise wrong hypotheses constantly and then spend time working on them just to find out how wrong we were.正如亞歷山大波普(Alexander Pope)所說…

leetcode 1143. 最長公共子序列(dp)

給定兩個字符串 text1 和 text2,返回這兩個字符串的最長 公共子序列 的長度。如果不存在 公共子序列 ,返回 0 。 一個字符串的 子序列 是指這樣一個新的字符串:它是由原字符串在不改變字符的相對順序的情況下刪除某些字符(也可以…

【Spark】SparkStreaming-Kafka-Redis-集成-基礎參考資料

SparkStreaming-Kafka-Redis-集成-基礎參考資料 Overview - Spark 2.2.0 DocumentationSpark Streaming Kafka Integration Guide - Spark 2.2.0 DocumentationSpark Streaming Kafka Integration Guide (Kafka broker version 0.8.2.1 or higher) - Spark 2.2.0 Documentat…