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()

 

posted @ 2020-10-08 18:27  给明天的自己  阅读(2)  评论(0编辑  收藏  举报