python函数

一.闭包

闭包是在一个函数内部定义一个函数,内层函数对外层函数的非全局变量的引用

def hello ():
    name = '小明'
    def world(activity):
        return name+activity
    return world
adv = hello()
print(adv('打篮球'))    #结果:小明打篮球

二常用函数

1.sorted

排序

lists = [2,5,2,4,7]
print(sorted(lists,reverse=True))  # reverse=True  倒序排序  结果:[7, 5, 4, 2, 2]
print(sorted(lists))  #排正序  结果:[2, 2, 4, 5, 7]

2.filter

筛选符合条件的元素

def get_data(x):
    return x%2==0
print(list(filter(get_data,range(1,11))))   #[2, 4, 6, 8, 10]

3.reduce

对一个序列进行累积操作

from functools import reduce
def get_data(x,y):
    return x+y
print(reduce(get_data,range(1,11)))   #55

4.map

def get_data(x):
    return x**3
print(list(map(get_data,[1,2,3])))  #[1, 8, 27]

5.reversed

对列表进行逆序操作

lists = [1,3,2,5,2]
print(list(reversed(lists)))  #[2, 5, 2, 3, 1]  # 排倒序

6.max min

求最大最小值

lists = [1,5,9,87,1,5,97,5]
print(max(lists))  #97
print(min(lists))  #1

三.匿名函数

get_data = lambda x:x**3
print(list(map(get_data,[1,2,3])))  # [1, 8, 27]


from functools import reduce
get_data = lambda x,y:x+y
print(reduce(get_data,range(1,101)))  # 5050

四.类和实例

1.类的格式

1、类由 class 开头,类名首字母大写,类名后面的括号表示继承自基类 object ,所
有类都会继承这个类;
2、类的构造方法是 __init__ ,第一个参数是固定的,永远是 self ,类里面通过 self 调
用属性和方法,

class student (object):
     #这里面是类属性
    gender = '男'   
    def __init__(self,name):
       #这里面是实例属性
        self.name = name
stu1 = student('张十三')
stu2 = Student('李四')
print(stu1.name,stu1.gender)  # 张十三 男
print(stu2.name,stu2.gender)  # 李四 男
print(Student.gender)  # 男


#类只能调用类属性,,实例可以调用所有属性

2.实例方法,类方法,静态方法:

class student (object):
    gender = '男'   
    def __init__(self,name):
        self.name = name
#实例方法
    def say(self)
        print(f'{self.name}去吃饭')
stu1 = student('张十三')  #实例化的过程
stu2 = Student('李四')
stu1.say()  #张十三去吃饭
stu2.say()  #李四去吃饭

# 类方法
    @classmethod
    def hello(cls):
        print(cls,'hello world')  
Student.hello()   #<class '__main__.Student'> hello world

    
# 静态方法
    @staticmethod
    def world():
        print('你好') 
Student.world()   #你好

3.类的私有属性

如果让内部属性不被外部属性访问,在属性前面加上两个下划线——,实例变量名如果一——开头,就变成一个私有变量,只有内部可以访问,外部不能访问。

class Student(object):
    def __init__(self, name, score):
        self.__name = name
        self.__score = score

    def print_score(self):
        print('%s: %s' % (self.__name, self.__score))
stu = Student('wang', 22)
print(stu.__name)  #AttributeError: 'Student' object has no attribute '__name'

也有办法可以调用,所以说python中没有绝对的私有属性。

ass Student(object):
    def __init__(self, name, score):
        self.__name = name
        self.__score = score

    def get_name(self):
        return self.__name

    def print_score(self):
        print('%s: %s' % (self.__name, self.__score))

stu = Student('wang', 22)
stu._Student__name = '小明'
print(stu.get_name())  #小明

 

4.类的封装

5.类的继承


class Animal:
    live = "有生命的"
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def eat(self):
        print('动物都需要进食')
class Cat(Animal):
    pass
class Dog(Animal):
    pass

print(Cat.live)  #有生命的

p1 = Dog("小花",2,)
print(p1.name,p1.age)  #小花 2

6.多重继承

class God:
    def fly(self):
        print('会飞')
    def climb(self):
        print('神仙也可以爬树')
class Monkey:
    def climb_trees(self):
        print('爬树')
class MonkeySun(God, Monkey):
    pass
sun = MonkeySun()
sun.climb()  #神仙也可以爬树
sun.climb_trees()  #爬树
sun.fly()  #会飞

 

7.类的多态

class Animal(object):
    def run(self):
        print('runing')
class Dog(Animal):
    def run(self):
        print('Dog is runing')
class Cat(Animal):
    def run(self):
        print('Cat is runing')
def runclass(obj):
    obj.run()
runclass(Animal())  #runing
runclass(Dog())  #Dog is runing
runclass(Cat())  #Cat is runing

8.tapy

可以使用tapy()货物对象的类型:

9.isinstance

用于盘算子类的继承关系

class Animal(object):
    def run(self):
        print('runing')
class Dog(Animal):
    pass
dog = Dog()
isinstance(dog,Dog)
isinstance(dog,object)

10.dir
如果要获得一个对象的所有属性和方法,可以使用 dir() 函数:

import math
dir(math)

11.getattr,  setattr,hasattr

getattr() 可以获取类的某个属性, setattr() 可以设置类的某个属性,hasattr() 可
以判断类是否拥有某个属性:

使用getattr()尝试获取对象一个不存在的属性值会报错

class Animal(object):
    def __init__(self):
        self.type = 'animal'
        self.area = 'China'
    def run(self):
        print('runing')
class Dog(Animal):
    pass
dog = Dog()
print(hasattr(dog,'type'))  #True
print(hasattr(dog,'run'))  #True
print(hasattr(dog,'name'))  #False
print(getattr(dog,'area'))  #China
setattr(dog,'name','小黑')
print(getattr(dog,'name'))  #小黑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值