python基础(三)

一、函数

函数:一种仅在调用时运行的代码块,可以重复使用。

实例:

# 定义函数
def add(a, b): 
    return a + b
  
# 调用函数
c = add(1, 2)
print(c)

一些规则:

  • 定义函数以 def 关键词开头,后接函数标识符名称和圆括号()。
  • 函数名命名小写字母分开,不能以数字开头,不同的字母之前用下划线隔开
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数内容以冒号起始,并且缩进。
  • 使用 return 语句返回函数值
  • 调用函数时使用函数名称后跟括号
  • 如果不知道将传递的函数有多少个参数,可以在函数定义的参数名称前添加 *
  • 函数定义不能为空,但是如果您出于某种原因写了无内容的函数定义,请使用 pass 语句来避免错误。

return函数
在函数中,return相当于结束符,表示函数到此为止

定长参数

动态参数

  1. 动态参数:不定长参数 *args=argument
  2. 在函数内部,作为元组传递
  3. 必需以*传参数

关键字参数

  1. 关键字参数:key-value **kwargs (key word)
  2. 必需以**传参数
  3. 在函数中体现为字典

全局变量与局部变量

  1. 作用范围不一样 全局变量:模块里面都能用 局部变量:函数的局部变量只能用于函数
  2. 当全局和局部变量同名且同时存在时,函数优先调用局部变量
  3. 当局部变量没有时,用全局
  4. global 声明一个全局变量

实例:

a = 1 #全局变量
def add(b):
    global a #声明这是一个全局变量
    a = 10
    print(a+b)
add(10) #10+a=5
print(a) #10,相当于给a=1再次赋值a=10

匿名函数lambda
lambda 函数可接受任意数量的参数,但只能有一个表达式。

(lambda x: x > 2)(3)  # => True

(lambda x, y: x ** 2 + y ** 2)(2, 1)  # => 5

Python 内置函数

二、类/对象

1. 基本特征

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • 数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  • 局部变量:定义在方法中的变量,只作用于当前实例的类。
  • 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。、
  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
  • 实例化:创建一个类的实例,类的具体对象。
  • 方法:类中定义的函数。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

2. 类的基本语法

实例:

# 定义类
class Myclass():
    # 类下面定义方法,与函数的区别时,第一个参数必须声明,一般用self,调用时不需要设置self的数值
    def say_hello(self, name):
        return "hello, " + name

# 调用类
mc = Myclass()
print(mc.say_hello("Jane"))

注意:类名首字母大写,数字字母下划线组成,不能以数字开头,驼峰命名

3. 类方法

类方法

(一)、类方法

  1. 方法前面有标识:@classmethod
  2. 参数为cls
  3. 调用方法:创建实例与否,均可以调用方法
    - 实例调用:类名().方法名()
    - 不创建实例调用:类名.方法名()

(二)、实例

  1. 参数为self:实例本身
  2. 调用属性:实例.属性名
  3. 调用方法/函数:只能实例来调用,才能调用方法
    - 实例调用:类名().方法名() 或实例调用: 实例.方法名()

(三)、静态方法

  1. 方法前面有标识:@staticmethod
  2. 调用方法:创建实例与否,均可以调用方法
    - 实例调用:类名().方法名()
    - 不创建实例调用:类名.方法名()

初始化方法
创建类时先声明初始化方法__init__()的,将值赋给对象属性,或者在创建对象时需要执行的其他操作。

实例:

class Suanshu:
	 # 初始化声明
     def __init__(self, a , b):
     	self.a = a
        self.b = b
     # 自定义方法
     def add(self):
        return self.a + self.b

count = Suanshu(1, 2)
print(count.add())

注意:每次使用类创建新对象时,都会自动调用 init() 函数。

继承

# B类继承A类
class B(A):
    def sub(self, a, b):
        return a - b
print(B(2, 3).add())  # 2+ 3 =5

4. Python内置类属性

  • dict : 类的属性(包含一个字典,由类的数据属性组成)
  • doc :类的文档字符串
  • name: 类名
  • module: 类定义所在的模块(类的全名是’main.className’,如果类位于一个导入模块mymod中,那么className.module 等于 mymod)
  • bases : 类的所有父类构成元素(包含了一个由所有父类组成的元组)

三、模块

模块是包含一组函数的文件,希望在应用程序中引用。
模块能定义函数,类和变量,模块里也能包含可执行的代码。

# 导入模块
import math
print math.sqrt(16)  # => 4

# 从模块里导入一些函数
from math import ceil, floor
print ceil(3.7)  # => 4.0
print floor(3.7)  # => 3.0

# 简写模块名
import math as m

dir() 函数可以列出模块中的所有函数名(或变量名)

import math
content = dir(math)
print (content)

结果为:
['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 
'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 
'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 
'sqrt', 'tan', 'tanh']

1.内置模块(不用import就可以直接使用)常用内置函数:

help(obj) 在线帮助, obj可是任何类型    
callable(obj) 查看一个obj是不是可以像函数一样调用    
repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝    
eval_r(str) 表示合法的python表达式,返回这个表达式    
dir(obj) 查看obj的name space中可见的name    
hasattr(obj,name) 查看一个obj的name space中是否有name    
getattr(obj,name) 得到一个obj的name space中的一个name    
setattr(obj,name,value) 为一个obj的name   
space中的一个name指向vale这个object    
delattr(obj,name) 从obj的name space中删除一个name    
vars(obj) 返回一个object的name space。用dictionary表示    
locals() 返回一个局部name space,用dictionary表示    
globals() 返回一个全局name space,用dictionary表示    
type(obj) 查看一个obj的类型    
isinstance(obj,cls) 查看obj是不是cls的instance    
issubclass(subcls,supcls) 查看subcls是不是supcls的子类  

2.操作系统相关的调用和操作: import os

os.environ 一个dictionary 包含环境变量的映射关系   
os.environ["HOME"] 可以得到环境变量HOME的值     
os.chdir(dir) 改变当前目录 os.chdir('d:\\outlook')   
注意windows下用到转义     
os.getcwd() 得到当前目录     
os.getegid() 得到有效组id os.getgid() 得到组id     
os.getuid() 得到用户id os.geteuid() 得到有效用户id     
os.setegid os.setegid() os.seteuid() os.setuid()     
os.getgruops() 得到用户组名称列表     
os.getlogin() 得到用户登录名称     
os.getenv 得到环境变量     
os.putenv 设置环境变量     
os.umask 设置umask     
os.system(cmd) 利用系统调用,运行cmd命令   

3.系统相关的信息模块: import sys

sys.argv 是一个 list,包含所有的命令行参数.    
sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象.    
sys.stdin.readline() 从标准输入读一行 sys.stdout.write("a") 屏幕输出a    
sys.exit(exit_code) 退出程序    
sys.modules 是一个dictionary,表示系统中所有可用的module    
sys.platform 得到运行的操作系统环境    
sys.path 是一个list,指明所有查找module,package的路径.  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值