iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 16
2
Software Development

30天全端手把手學徒計畫-前後端整合之旅系列 第 16

[守] Hey, bro! 重點不在Javascript與Python

很多人煩惱工具或語言的問題,而忽視掉需求分析的部分。

然而python在某些語法上是和javascript有點像似的,應該不需要過於擔心。兩個語言也都是直譯式語言,都支援記憶體自動管理,也可使用eval來執行程式碼。

幾點相似地方我們列一下。

1.物件宣告

#python
class UserModel(db.Model):
    id = "9999"
    name = "Ivan"
    #建構元
    def __init__(self, id="9999", name="Ivan"):
        self.id = id
        self.name = name
 
    def fun(self):
        return "Hello world. %r" % self.name
        
user1 = UserModel()
print(user1.id)
print(user1.name)
#會印出"9999"和"Ivan"

user2 = UserModel(name="Ivan2")
print(user2.id)
print(user2.name)
#會印出"9999"和"Ivan2"

print(user2.fun())
#會印出"Hello world. Ivan2"
//javascript
class UserModel extends React.Component {
    id = "9999"
    name = "Ivan"
    //建構元
    constructor(id="9999", name="Ivan") {
        this.id = id;
        this.name = name;
    }
 
    fun = () =>{
        return `Hello world. ${this.name}`;
    }
}
        
var user1 = new UserModel()
console.log(user1.id)
console.log(user1.name)
//會印出"9999"和"Ivan"

var user2 = new UserModel("9999", "Ivan2")
console.log(user2.id)
console.log(user2.name)
//會印出"9999"和"Ivan2"

console.log(user2.fun())
//會印出"Hello world. Ivan2"

python的self和javascript的this有一點相像,而javascript自身也有self,但稍微有些微不同,網路上也可以搜尋到很多相關資料。

2.字串處理的方法很類似

分割字串

#python
s = "a,b,c,d"
print(s.split(",", 2))
#["a","b"]
//javascript
var s = "a,b,c,d";
console.log(s.split(",", 2))
//["a","b"]

合併字串

#python
str_list = ['a', 'b', 'c']
print(','.join(str_list))
#"a,b,c,d"
//javascript
var str_array = ['a', 'b', 'c']
console.log(str_array.join(','));
#"a,b,c,d"

3.迭代器

#Python
list = [1, 2, 3, 4, 5]
for i in list: 
    print(i)

Javascript則有比較多做法

//javascript
array = [1, 2, 3, 4, 5];
for(var i=0;i<array.length;i++){ 
    console.log(array[i]);
}
//javascript
array = [1, 2, 3, 4, 5];
array.forEach((item)=>{
    console.log(item);
})

python也有iter()和next()與js的迭代器generator(使用)和next()類似。

還有很多很類似的特性,族繁不及備載。因此對於前端工程師或者原先就使用python的後端/資料工程師來說,要彼此相互轉換是很容易的。

當語言不再是隔閡的時候,我們該思考的是如何讓彼此的心靈相通,這就是再回歸到人性本身,人是比程式還複雜的東西,若不能有相同彼此認知到的共識,即使用的是相同的語言,依然無法合作完成一個好的作品。


上一篇
[守]機器人大戰:我們來說直播電商
下一篇
[守] 你需要的是資料結構, 演算法與物件導向概念的加持
系列文
30天全端手把手學徒計畫-前後端整合之旅33

尚未有邦友留言

立即登入留言