目录
本系列文章为参与【Python】CSDN21天学习挑战赛 ,成为更好的自己,根据自身的学习进度并记录自己的学习过程。我也是Python纯小白,和大家一起学习,保持热爱学习的好习惯😁
活动地址:CSDN21天学习挑战赛
; 类
类定义
类的简要描述
- 类其实就是存放了许多函数的一个集
- 类中的函数必须实例类后才能调用
-
类与类可以继承,子类可以使用父类中的函数,如果父类中的函数不能满足需求,可以对父类中的函数进行重写
override
(不是重载
)类的命名规范
-
不要使用其他特殊符号,包括下划线_
- 使用大驼峰命名(每个单词首字母大写)例:Person,RequestsHelper,ConfigurationFileTool
例:
class 类名:
def __init__(self, parameter1, parameter2):
"""
构造函数
创建实例,必须要传入parameter1和parameter2,在类的方法中调用参数,只需要self.parameter1就可以获取当前类参数值
"""
self.parameter1 = parameter1
self.parameter2 = parameter2
class 类名(父类):
类方法(函数)
class 类名(object):
类方法
Python类中常用三种类方法
- 普通方法,第一个参数通常使用self,表示一个具体的实例本身
- 类方法(@classmethod),第一个参数通常使用cls,表示这个类本身,可以类实例调用或直接类.方法名调用
- 静态方法(@staticmethod),类中不需要实例的函数,无self,可以类实例调用或直接类.方法名调用
- 私有方法,Python中私有方法并不需要什么关键字,而是直接在方法前加上
__
,只能在类内部调用
各方法调用示例:
普通方法
class A(object):
def method_a(self):
print('我是普通方法,我第一个参数是self,我需要类实例调用')
a = A()
a.method_a
类方法
class A(object):
@classmethod
def method_b(cls):
print('我是类方法,我第一个参数是cls,我可以类实例调用也可以类直接调用')
a = A()
a.method_b
A.method_b
静态方法
class A(object):
@staticmethod
def method_c():
print('我是静态方法,我不需要self和cls,我可以类实例调用也可以类直接调用')
a = A()
a.method_c
A.method_c
私有方法
class A(object):
def __method_e(self):
print('我是私有方法')
a = A()
a.__method_e
变量
变量定义
变量指在代码中为某一数据取的名称,在编程过程中使用该名称相当于使用其背后的数据。简而言之,我们可以将变量视为代码中用来保存数据的临时容器。
- 局部变量:就是在函数内部定义的变量,其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部无法使用
- 全局变量:在函数外边定义的变量,其作用范围能够在所有的函数中进行访问
声明变量:
- 格式:变量名=值
- 必须为变量赋值,可以赋None值
- 不需要关键字,也可以不用指定变量类型
变量的命名规范:
局部变量
- 由字母,数字,下划线组成,不能以数字开头,不能与关键字重名
- 区分大小写,尽量每个单词使用小写,例:name,age,sex
- 如果多个单词,单词与单词之间用英文下划线_连接,例:account_info,request_data
全局变量
采用gl_或g_加变量名,例:gl_url/g_url,gl_user/g_user
常量
常量定义
常量一般指不变的数据,我们就可以把它定义为常量,比如: Π
,但其实在Python中,定义的常量本质上也是变量,是可以修改的,只是我们经常习惯用大写区分,告诉别人这是常量,不应该修改。
常量命名规范
全部单词大写,单词与单词之间用英文下划线_连接,例:ACCESS_TOKEN,PI,APP_KEY
函数
函数定义
函数是可重复使用的,一般用来实现单一或强相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。Python中有很多默认函数,比如 print()
, input()
。我们自己写的函数称为自定义函数。
定义
- 以 def 关键字开头,后接定义函数的名称和英文括号(),以冒号:结尾
- 括号中可为空,也可以传入参数
- 定义函数的内容,需要与 def保持缩进
- 调用函数基本格式:函数名称(),无参数括号中则不填内容,有参数则填写对应的函数参数
-
函数中 return结束函数,调用函数会返回对应值,没有 return则调用函数返回 *None
函数的命名规范
-
函数名尽量简洁易懂
- 每个单词小写,单词与单词之间使用英文下划线_连接,例:save_userinfo,delete_user
- 使用小驼峰命名(第一个单词首字母小写,后面单词首字母大写),例:saveUserinfo,deleteUser
其实很多时候命名也是一种能力,要让别人阅读代码容易看懂,知道这是干嘛的,甚至好的命名可以替代注释的,这在所有语言中都是一样的;
具体什么操作,就以这个函数具体执行的操作的单词开始,这样别人阅读代码的时候,看函数名就大致知道这个函数是干什么的,尽可能一个函数只做一件事情,这样可以降低代码耦合度,后期维护也更省心;
例如:
获取文件内容:get_file_content;
根据id获取用户信息:get_userinfo_by_id;
发送邮件:send_email;
批量发送电子邮件:batch_send_email
- …
函数参数
函数中定义的参数成为形式参数,简称:形参
def fun1(p1, p2, p3, p4="4"):
print(p1 + p2 + p3)
调用函数中定义的参数成为实际参数,简称:实参
fun1("1", "2", "3")
位置传参
fun2("我是参数1", "我是参数2", "我是参数3")
fun2("我是参数2", "我是参数1", "我是参数3")
关键字传参
关键字传参和先后顺序没有关系,可以和位置传参共用,需要注意:位置传参必须在关键字传参前;如果一个实参使用关键字传参,则后面所有实参必须使用关键字传参
fun3(p1="我是参数1", p3="我是参数3", p2="我是参数2")
fun3("我是参数1", p3="我是参数3", p2="我是参数2")
fun3("我是参数1", "我是参数2", p2="我是参数3")
fun3(p1="我是参数1", "我是参数2", "我是参数3")
fun3("我是参数1", p2="我是参数2", "我是参数3")
动态参数传参
*args
: 只能按照位置传参,()元组类型
def fun4(*args):
print(args)
print(args[1])
fun4()
fun4("1")
fun4("1", "2")
fun4("1", "2", 3)
**kwargs
: 只能按照关键字传参,{}字典类型
def fun5(**kwargs):
print(kwargs)
print(kwargs["a"])
fun5()
fun5(a="1")
fun5(a="1", b="2")
fun5(a="1", b="2", c=3)
*args
, **kwargs
: 可以用位置传参,可以用关键字传参,(){}元组加字典,注意:函数中元组和字典不能切换位置,*args必须在**kwargs前;
def fun6(*args, **kwargs):
print(args)
print(kwargs)
fun6()
fun6("1")
fun6(a="1")
fun6("1", "2")
fun6(a="1", b="2")
fun6("1", b="2")
fun6(a="1", "2")
参数和动态参数一起使用时,动态参数必须放在参数后
def fun6(p1, p2, *args, **kwargs):
默认参数和动态参数混用,默认参数必须放在字典参数**kwargs前
def fun6(p1, p2="2", *args, p3="3", p4, **kwargs):
函数返回值
返回值可以是任意类型,如果函数中没有return,则默认返回None
def fun7(num1, num2):
print(num1 + num2)
print(fun7(1, 1))
def fun8(num1, num2):
print(num1 + num2)
return num1 + num2
print(fun8(1, 1))
return返回值后带有逗号,默认转换为元组类型返回
def fun9(num1, num2):
return num1 + num2,num1 - num2
print(fun9(1, 1))
函数中遇到return则立即返回终止函数,下面代码将不再执行,注意:循环中return也一样立即返回终止函数
def fun10(num1, num2):
print(num1 + num2)
return num1 + num2
print(num1 - num2)
return num1 - num2
print(fun10(1, 1))
总结
这周出差到现场驻场开发,现场真的超级忙,没有空闲时间,只能晚上下班回来学习,虽然辛苦,继续坚持!
Original: https://www.cnblogs.com/xdgy/p/16600064.html
Author: 小呆瓜耶
Title: 【Python】类,变量,函数一一CSDN21天学习挑战赛
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/602142/
转载文章受原作者版权保护。转载请注明原作者出处!