【Python】类,变量,函数一一CSDN21天学习挑战赛

【Python】类,变量,函数一一CSDN21天学习挑战赛

目录

本系列文章为参与【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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球