1. 程式人生 > >python-13 函式 面向物件

python-13 函式 面向物件

函式

允許遞迴
函式的定義

分類

內建函式
標準庫函式
庫函式
使用者自定義函式

函式的定義和呼叫

使用def語句定義函式

def 函式名(引數列表):
	函式體 (語句)

形參之間用逗號做間隔
有沒有返回值的函式看函式有沒有return語句

練習,n階調和數
def myAdd(n):
    sum = 0.0;
    for i in range(1,n+1):
        sum += 1.0/i
    return sum

遞迴實現
def myAdd(n):
    if n==1:
        return 1.0;
    else:
        return 1.0/n+myAdd(n-1)

封裝繼承多型

類的定義

clas 類名:
	類體

物件的建立和使用

a=類名()
a.屬性
a.方法

函式和方法

帶self的叫做方法
不帶self的叫做函式

def __init__(self,name): #相當於建構函式,呼叫是忽略self
	self.name = name

封裝屬性

class Person:
    name = "Tom"
    __age=34

    def get_age():
        print(Person.__age)



p = Person()
#p.get_age() #錯誤的寫法
Person.get_age()
p._Person__age = 2
print(p._Person__age)

兩個__表示私有成員

呼叫私有屬性:

物件._類名__屬性
物件.一個下劃線類名兩個下劃線屬性

裝飾器

屬性裝飾器

class Person:

    def __init__(self,name):
        self.__name = name

    @property
    def info(self):
        return self.__name

p = Person("tom")

print(p.info)

將方法視為屬性