1)函数
def hello(greeting,name):
print ‘%s,%s’ % (greeting,name)
hello(‘hi’,’yangwenbin’) —-hi,yangwenbin
**2)参数
关键字参数:**
def hello(greeting,name):
print ‘%s,%s’ % (greeting,name)
hello(name=’yangwenbin’,greeting=’hi’) —-hi,yangwenbin
位置参数:(下面 time属于位置和关键字参数一起使用时,应把位置参数放在前面)
def hello(time,greeting=’hi’,name=’yangwenbin’):
print ‘%s,%s,%s’ % (time,greeting,name)
hello(‘mar’) —-mar,hi,yangwenbin
3)收集参数 关键字‘*’收集其余的位置参数(返回一个元组)
(能提供任意数量的参数)
def store(title,*param):
print title,param
store(‘name:’,’yangwenbin’,’lisi’) —name: (‘yangwenbin’, ‘lisi’)
‘**’处理关键字参数的‘收集’操作 (返回一个字典)
def store(title,**param):
print title,param
store(‘age:’,yangwenbin=’23’,lisi=25) —-age: {‘yangwenbin’: ‘23’, ‘lisi’: 25}
#
def store(title,*par,**param):
print title,par,param
store(‘age:’,’yangwenbin’,’lisi’,yangwenbin=’23’,lisi=25) —age: (‘yangwenbin’, ‘lisi’) {‘yangwenbin’: ‘23’, ‘lisi’: 25}
4)作用域
局部变量与全局变量
函数中全局变量的访问(global关键字)
x=1
def change():
global x
x=x+1
print x
change()
5)递归
def factorial(n):
if n==1:
return n
else:
return n*factorial(n-1)
a=factorial(3)
print a
#
def power(x,n):
if n==0:
return 1
else:
return x*pow(x,n-1)
a=power(2,3)
6)类的创建
class Person:
def setname(self,name):
self.name=name
def getname(self):
return self.name
def greetname(self):
print “hello i am %s” % self.name
foo=Person() #实例化一个对象
foo.setname(‘yangwenbin’) #访问成员方法
a=foo.getname()
print a
foo.greetname()
foo.name=”lisi” #访问成员特性
foo.greetname() —-yangwenbin hello i am yangwenbin hello i am lisi
7)python 的私有方式
(为了让方法的或者特性变成私有,无法从外部访问,只要在它的名字之前加上双下划线即可)
class Person:
def setname(self,__name):
self.__name=__name
def __getname(self):
return self.__name
def greetname(self):
print “hello i am %s” % self.__name
foo=Person()
foo.setname(‘yangwenbin’)
a=foo.__getname()
print a —会报错,因为__getname() 已经私有化 外部不能访问
8)类的命名空间
class memberCount():
members=0
def init(self):
memberCount.members+=1
m1=memberCount()
m1.init()
m1.init()
print m1.members,memberCount.members —2 2
9)指定超类—继承 (eval用于求值,计算python表达式,并返回结果值如:eval(1+2+3)返回值6)
class Caculate: #基类1
def caculate(self,expession):
self.value=eval(expession)
class Talker: #基类2
def taker(self):
print “my value is”,self.value
class TalkingCalculator(Caculate,Talker): 子类
pass
tc=TalkingCalculator()
tc.caculate(‘1+2+3’)
tc.taker()