2020-11-11

1377-王同学

发表文章数:14

热门标签

首页 » Python » 正文

Python基础知识(7)

嵌套函数

1.封装——数据隐藏,外部无法访问嵌套函数

2.嵌套函数可以让我们在函数中避免重复代码

3.闭包

nonlocal、global关键词

内层函数使用外部函数的局部变量时需要用nonlocal来声明

函数使用全局变量时需要使用global来声明

a = 100     #全局变量
def outer():
    b = 200
    def inner():
        nonlocal b
        print('inner b:', b)
        b = 20000

        global a
        a = 10000
    inner()
    print('outer b:{}'.format(b))
outer()
print(a)



输出:
inner b: 200
outer b:20000
10000

LEGB规则

python在查找名称时,按照函数内部—嵌套函数—全局变量—python为自己保留的特殊名称

类:

类将行为和状态打包在一起

如果把对象比作是饼干,类就是制造饼干的模具

类名必须符合‘标识符’原则,首字母大写,多个单词使用驼峰原则

属性用来描述数据,方法用来描述这些数据相关的操作

构造函数 init( )

要点一、名称固定,必须为__init__()

要点二、第一个参数必须为self。self指的是刚刚创建好的实例对象

要点三、构造函数通常用来初始化实例对象的实例属性

通过类名()来调用构造函数,调用后,将创建好的对象返回给相应的变量

class Student:
    company = '尚学堂'
    count = 0    #类属性
    def __init__(self, name, score):
        self.name = name    #实例属性
        self.score = score
        Student.count += 1
    def say_score(self):        #实例方法
        print('{}的成绩为:{}'.format(self.name, self.score))

s1 = Student('高琦', 80)    #s1是实例对象,直接调用__init__函数
s1.say_score()
s2 = Student('张三',80)
s3 = Student('李四',60)
print('一共有{}个学生的成绩'.format(Student.count))


输出为:
高琦的成绩为:80
一共有3个学生的成绩

上述代码的运行逻辑图:2020-11-11

实例属性

实例属性:从属于实例对象的属性

self.实例属性名 来调用

创建实例对象后,通过实例对象访问

obj01 = 类名() #创建对象,调用__init__初始化属性

obj01.实例属性名 = 值 #可以给已有属性赋值,也可以新加属性并赋值

类对象、类属性、类方法

类也可以作为对象

类方法通过装饰器 @classmethod来定义

格式为:

@classmethod

def 类方法名(形参列表):

     函数体

__call__方法

定义了call方法的对象,称之为可调用对象,即该对象一样可以被调用。

class SalaryAccount:
    def __call__(self, salary):
        yearsalary = salary*12
        daysalary = salary//22.5
        return dict(yearsalary=yearsalary, daysalary=daysalary)
s = SalaryAccount()
print(s(30000))



输出为:
{'yearsalary': 360000, 'daysalary': 1333.0}
标签:

未经允许不得转载:作者:1377-王同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《2020-11-11》 发布于2020-11-11

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录