1. 程式人生 > >python基礎7

python基礎7

1.將函式作為返回值

def lazy_sum(*args):
def sum():
    ax = 0
    for n in args:
        ax = ax + n
    return ax
return sum

#進行呼叫

f = lazy_sum(1, 3, 5, 7, 9)
f()

2.使用匿名函式,前面的x: 其實就是引數

lambda x:x*x

相當於

def f(x):
return x*x

def build(x, y):
 return lambda: x * x + y * y
 print(build(20,2)())

3.獲取函式物件的名字
build.name

4.型別轉化

>>> int('12345')
12345

但int()函式還提供額外的base引數,預設值為10。如果傳入base引數,就可以做N進位制的轉換:

	>>> int('12345', base=8)
5349
	>>> int('12345', 16)
74565

functools.partial就是幫助我們建立一個偏函式的,不需要設定base的函式:

>>> import functools
>>> int2 = functools.partial(int, base=2)
>>> int2('1000000')
64
>>> int2('1010101')
85

5.這個私有的方法,使用_或者是__

def _private_1(name):
  return 'Hello, %s' % name

def _private_2(name):
  return 'Hi, %s' % name

def greeting(name):
   if len(name) > 3:
      return _private_1(name)
else:
    return _private_2(name)
    
print(greeting("啦啦"))

6.物件的使用

class Student(object):
#這應該是構造器  第一個引數self表示的就是自身
def __init__(self,name):
    self.name=name

def print_score(self):
    print("%s" %(self.name))
    

bart = Student('Bart Simpson')
lisa = Student('Lisa Simpson')
bart.print_score()
lisa.print_score()