python(嵌套函数,面向对象编程)

本文详细探讨了Python中的嵌套函数,包括nonlocal关键字、LEGB规则,以及面向对象编程的核心概念,如类的定义、构造函数、实例属性、实例方法、类对象、类属性、类方法和静态方法。通过了解这些,读者能够更好地掌握Python的高级编程技巧。
摘要由CSDN通过智能技术生成

嵌套函数

nonlocal关键字

global全局变量
在这里插入图片描述
local关键字
nonlocal关键字
在这里插入图片描述

LEGB规则

local(函数或类方法内部)>enclosed嵌套函数>global模块中的全局变量>build in(python本身自己的)
(就是一层一层外那个外找)


面向对象编程

面向过程:需要想第一步干什么,第二部干什么,但是当你碰到比较复杂的问题的时候,就会发现想1234列出步骤,是不可能的。
面向对象:需要想这个东西都是由什么对象组成的,然后先设计对象(其中需要用到面向过程思维),再组装。

类的定义

类:就是创建对象的“模具”
在这里插入图片描述
在这里插入图片描述

class Student: #类名一般首字母大写,多个单词采用驼峰原则
    def __init__(self,name,score):
        self.name = name
        self.score = score

    def say_score(self):
        print("{0}的分数是:{1}".format(self.name,self.score))
s1 = Student("高琪",18)
s1.say_score()

构造函数__init__

__ init __方法:初始化创建好的对象。
第一个参数固定,必须为self。

实例属性

  1. 实例属性一般在__ init __中通过self.实例属性名称 = 初始值
  2. 创建对象后,通过实例对象访问:
    obj = 类名()
    obj.实例属性名 = 值

实例方法

实例方法从属与实力对象。
格式:
def 方法名(self,形参)
函数体

类对象

class 类名,实际上,当解释器实行class语句时,就会创建一个类对象

类属性

class Student: #类名一般首字母大写,多个单词采用驼峰原则
    company = "SXT"   #类属性
    count = 0           #类属性
    def __init__(self,name,score):
        self.name = name        #实例属性
        self.score = score

    def say_score(self):        #实例方法
        print("{0}的分数是:{1}".format(self.name,self.score))
s1 = Student("高琪",18)       #s1是实例对象
s1.say_score()

在这里插入图片描述

类方法

类方法从属于类属性,格式:

	@classmethod
	def 类方法名(cls,形参):
		函数体

静态方法

		@staticmethod
		def 静态方法名(形参列表):
			函数体

类方法和静态方法中,不能调用实例变量,实例方法

__call__方法和可调用对象

定义了__call__方法的对象,可以像函数一样被调用

class SalaryAccount:
	def __call__(self)
		print("算工资了")
		return 3000
s = SalaryAccount()
s()  # 想调用函数一样,调用含call的对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值