1. 程式人生 > >持續更新Python的一些小知識、、、、、

持續更新Python的一些小知識、、、、、

       在軟體行業,落後就要捱打,作為技術人,需要持續不斷的學習,才能不讓自己淘汰,所以建議多寫部落格,多讀部落格,多看看別人的技術分享,瞭解和使用開源的框架和專案,這樣才能學得更快和更有規律的學習。

1.高階函式的應用

space='----------------------------'
coda='hello world'
print(space.join(coda))

def test(content,insert):
    print(insert.join(content))
test('今天是週四,馬上週六,好開心','?'
) # map reduce def newMap(value): print(value) # map 裡面需要兩個值 # 值1:必須是函式 # 值2:序列,容器 # 作用:將序列裡面的每個元素單獨放入函式中執行 list(map(newMap,[1,2,3,4])) # 需求:將資料表裡面所有的資料前面新增一個完成時間 # map 的作用就是依次處理序列裡面的所有元素 # 和for迴圈類似 def changeAllData(value): return '完成時間;2018-8-8'+value result=list(map(changeAllData,['學習ajaxs'
,'學習AFnet','學習FMAS'])) print(result) def changeData(value): pass from functools import reduce def newReduce(value1,value2): # reduce 會將序列裡面所有的元素操作兩次 # 實現步驟是:將任意一個值前面的兩個值進行處理 # 處理的結果再和這個值進行處理 # 處理的結果給下一個值使用 # 所以必須有返回值 # return value1 +'的好朋友是'+value2 result=reduce(newReduce,['小王'
,'小張','小美','小明']) print(result) def count(index1,index2): return index1+index2 result=reduce(count,[1,2,3,4,5]) print(result) def test(a,*args,**kwargs): print(a) print(args) # kwargs必須一個關鍵引數 不能為字典型別 print(kwargs) # 方法裡面的實參必須和形參對應 test('張三',17,True,'李四',{'name':'xai'},friend='zha') comtent='print("0hello world")' print(comtent) # 將指定的字串當成程式碼處理 eval(comtent) # 宣告一個函式可以進行任意的加減乘除運算 def myFun(content,method='+'): content=method.join(content) print(eval(content)) myFun('12564544',method='*') # 匿名函式 # 函式都是有名字的 沒有名字的函式叫做匿名函式 def test(): pass test() # lambda 表示該函式為匿名函式 匿名函式後面的x表示接受的引數 # :x 表示返回x result=lambda x:x print(result(2)) def test(x): return x print(test(2)) result=lambda x,y :x+y print(result(3,4)) def test(x,y): return x+y print(test(3,4)) list=[1,5,6,89,66,46,23] # sorted排序 reverse=反序 list=sorted(list,key=lambda x :x,reverse=True) print(list)

 

2.類和物件的區分

# 類:抽象 整體 全域性 人類 星球
# 物件:具體 個體 區域性 張三丰 地球
# 物件是從類中分離出來的一個具體的個體
# 面向物件程式設計
# object 任何一個物件都直接或者間接繼承自object
# 從功能上定義:類是屬性和方法的集合
class Hero(object):
    # 屬性 稱之為類屬性
    blood=700
    attact=67
    level=1
    #方法
    def skill(self):
        print('致盲射擊')
timo=Hero()
timo.skill()
print(Hero.blood)
print(timo.blood)



class People(object):
    # __init__() 初始化
    # 當隊形建立的時候 屬性的預設值
    content = 0
    # 物件建立的時候會自動呼叫init方法
    # 如果init方法需要引數的話
    # 那麼物件在建立的時候也需要引數
    def __init__(self,name,sex,age):
        self.name=name
        self.age=age
        self.sex=sex
    # 物件方法
    def sleep(self):
        print('{}一天要睡十七八個小時'.format(self.name))
    def work(self):
        print('工作時間太短,不開心')
    def fond(self):
        print('人生苦短,幸虧我甜')
# 模子_________
zhangSan=People('張三','男','17')
zhangSan.sleep()

lisi=People('李四','男','25')
lisi.sleep()
print(People.content)
# 類屬性可以通過物件來呼叫
print(lisi.content)
print(zhangSan.name)

zhangSan.work()
# TypeError: work() missing 1 required positional argument: 'self'
# 型別錯誤: work裡面需要用到一個引數self
# work 方法是People 裡面的物件方法 self指的就是people的物件
# 所以在呼叫的時候 需要傳入一個People的物件
People.work(zhangSan)

class Person(object):
    # 如果初始化的時候設定了預設值 那麼在建立物件 可以不必設定引數

    def __init__(self,name='',age='',sex='',fond=''):
        self.name=name
        # 屬性前面新增下劃線的這種方式叫做私有屬性
        # 也就是不想被別人訪問的屬性
        # 但是這種屬性不是絕對訪問不了
        # 可以在通過在屬性前面新增下劃線的方式來訪問
        self._age=age
        self._sex=sex
        # 屬性如果是雙下劃線,如果想要呼叫屬性
        # 需要通過p1._Person__fond這種方式來呼叫
        self.__fond=fond

        #get set 方法
        # @property 屬性
        # @attribute 屬性
        # @property 宣告get set 方法的標記
    @property
    def fond(self):
        print('get方法被呼叫了')
        return self.__fond
    @fond.setter
    def fond(self,fond):
        self.__fond=fond
        print('set方法被呼叫了')

p1=Person('張三丰',149,'男','練劍')
print(p1.name,p1._age)
print(p1._age)

print(p1._sex)
# AttributeError: 'Person' object has no attribute '__fond'
# 屬性錯誤:python裡面沒有__fond 屬性
# print(p1.__fond)
print(p1._Person__fond)
print(p1.fond)
p1.fond='練拳'

3.繼承

# object 祖類或者超類
# 子類能夠繼承父類的屬性和方法
class People(object):
    def __init__(self,name='',sex='',age=''):
        self.name=name
        self.sex=sex
        self.age=age
    def eat(self):
        print('或者是為了吃')
        #函式可以為任意型別
    def makeFriendWithOtherPeople(self,other):
        print('{}想和{}交朋友'.format(self.name,other.name))

class Man(People):
    def __init__(self,name='',sex='',age='',huZi=''):
        # 繼承父類的屬性
        super(Man, self).__init__(name,sex,age)
        self.huZi=huZi
        # 重寫父類的同名方法
    def eat(self):
        # 繼承父類的方法
        super(Man,self).eat()
        print('我張三丰餓死也不吃')
sanfeng=Man('張三丰','男',149,'白鬍子')
sanfeng.name='三豐'
print(sanfeng.name)
print(sanfeng.huZi)
sanfeng.eat()

damo=Man('達摩','男',147,'沒有')
sanfeng.makeFriendWithOtherPeople(damo)