python 基础知识 二

177 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Python中除了内置的函数以外,还可以使用关键字def和lambda来定义

自定义一个函数,返回一个序列。序列中每个数字都是前两个数字之和(斐波那契数列)。

def fibs(num): 
# 位置参数 
result = [0,1] 
# 新建列表存储数列的值
for i in range(2,num): 
# 循环num-2次 
a = result[i-1] + result[i-2] result.append(a) # 将值追加至列表 
return result # 返回列表 fibs(5)

定义函数,打印不同方式传入的参数。

=必备参数:必备参数须以正确的顺序传入函数,调用时的数量必须和声明时的一样。

=关键字参数:函数调用时使用等号赋值的形式传入参数

=关键字参数:函数调用时使用等号赋值的形式传入参数

=不定长参数:有时可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数,声明时不会命 名。args,kwargs:加了星号()的变量args会存放所有未命名的变量参数,args为元组,而加的变量kwargs会存放命名 参数,即形如key=value的参数, kwargs为字典。

def func(a=1, b=2, *args):
  print(a+b) print(args) 
  # 必备参数
  func(0,4) # 关键字参数 
  func(b=4,a=0) # 默认参数
  func() # 不定长参数 
  func(1,2,3,4,5)

匿名函数

lambda来创建匿名函数。相比于普通函数而言,匿名函数只是一个表达式,函数体比def简单很多仅仅能在lambda表达式中 封装有限的逻辑进去

a = lambda x,y:x+y # lambda 参数:表达式
a(1,2) # 调用函数

面向对象

面向对象:把数据和对数据的操作方法放在一起,作为一个相互依存的整体——对象。把计算机程序视为一组对象的集合,而 每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递

面向对象的优势: -提高代码复用性。 -使程序的编码更加灵活,提高了代码的可维护性。 -提高程序的可扩展性。 -提高开发效率。

Python中创建类使用关键字class,并且具备封装、多态和继承的特点。

-封装:封装是一个概念,它的含义是把方法、属性、事件集中到一个统一的类中,并对使用者屏蔽其中的细节。

-继承:是一种创建类的方法,在现有类(被继承的类)基础上,进行扩展生成新的类,被称为子类。被继承的类称为父类、 基类、超类。

-多态:一个同样的函数对于不同的对象可以具有不同的实现。


class Person(object): # class 类名(父类), 在py3中所有的类默认继承
object def __init__(self, age, name): # self:指实例化的对象 # __init__方法对象初始化时调用的方法 
self.__age = age # 类属性 
self.name= name def func(self): # 方法
print("my name is %s"%(self.name))

默认情况下,属性在Python中都是“public”,类所在模块和导入了类所在模块的其他模块都可以访问到。如果类中的某些属性 不想被外界访问或者继承可以对其私有化。

-在属性或方法前加上一个下划线。可以防止模块的属性用“from mymodule import *”来加载,它只可以在本模块中使 用。

-在方法或属性前加双下划线。可以实现完全私有化。