python3变量、函数
目录
1、实例私有变量,类变量
2、匿名函数、不定长参数、高阶函数
1.1、私有变量
实例的变量名如果以__
开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问
可以定义方法,把私有变量返回,外部再去访问
class Student(object): def __init__(self, name, gender): self.name = name self.__gender = gender def get_gender(self): return self.__gender def set_gender(self,gender): self.__gender=gender if __name__ == '__main__': bart = Student('Bart', 'male') if bart.get_gender() != 'male': print('测试失败!') else: bart.set_gender('female') if bart.get_gender() != 'female': print('测试失败!') else: print('测试成功!')
1.2 类变量
相同名称的实例属性将屏蔽掉类属性,实例属性的优先级是要高于类属性的
class Student(object): count = 0 def __init__(self, name): self.name = name Student.count+=1 if __name__ == '__main__': if Student.count != 0: print('测试失败!') else: bart = Student('Bart') if Student.count != 1: print('测试失败!') else: lisa = Student('Bart') if Student.count != 2: print('测试失败!') else: print('Students:', Student.count) print('测试通过!')
2.1匿名函数
匿名函数使用lambda定义:lambda x: x * x,就可以完成原来显式定义的f(x)函数的功能,冒号前面的x表示匿名函数的参数,后面的是一个表达式,匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
2.2不定长参数
*args定义一个函数时,*将所有位置参数聚合到一个元组中,赋值给args
for i in args:
print(i)
**kwargs定义一个函数时,**将所有关键字参数聚合到一个字典中,赋值给**kwargs
for i,v in kwargs.items():
print("%s:%s"%(k,v))
items() 函数以列表返回可遍历的(键, 值) 元组数组
2.3高阶函数
函数可以作为变量 map(),reduce(),filter() sorted()
每个人都是一座山 世上最难攀越的山 其实是自己 往上走 即便一小步 也有新高度