栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Python学习Day10】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Python学习Day10】

一、全局变量和局部变量

  • 二、参数
    • 1.参数的类型
    • 2.参数的传递
  • 三、类
  •       1.类的定义
  •       2.构造函数     
  •       3.实例属性
  •       4.实例方法

一、全局变量和局部变量

1.全局变量作用在定义的模块,降低函数通用性与可读性,一般用作常量,函数内要改变全局变量的值,用global进行声明

a=10#全局变量
def outer():
    b=20#局部变量
    global a#函数内改变全局变量的值
    a=200
    print(a)
    print(b)
outer()
print(a)

结果:

200
20
200 

2.局部变量在函数体内声明,效率比全局变量快,局部变量与全局变量同名,局部变量更有优先性

3.locals()用于打印全部的局部变量;globals()用于打印全部的全局变量

4.nonlocal关键字:用来声明外层的局部变量

def outer1():
    b=10
    def inner():
        nonlocal b
        print(b)
        b=90
        print(b)
    inner()
outer1()

结果:

10
90 

二、参数

1.参数的类型

1.1位置参数:函数调用时,实参默认按位置传递,个数与形参需匹配

1.2默认值参数:有些参数的值是设置成默认值的,默认值参数必须在普通位置参数后 

def f1(a,b,c=10,d=20):     #c和d是默认值参数

    print(a,b,c,d)

f1(1,2)      #传进a和b的值

1.3 命名参数:按照形参名字传递参数,顺序可不一致

def f1(a,b,c):

    print(a,b,c)

f1(c=3,b=2,a=1)   #命名参数

1.4可变参数:*将多个参数收集到一个元组中,**将多个参数收集到一个字典中

def f1(a,b,*c):

    print(a,b,c)

f1(1,2,3,4)

def f2(a,b,**c):

    print(a,b,c)

f2(1,2,name='小明',age='18')

1.5强制命名参数:带星号的可变参数后面新增参数,必须是强制命名参数

def f3(*a,b,c):

    print(a,b,c)

f3(1,2,3,b=4,c=5)   #b,c必须强制命名

2.参数的传递:Python中参数的传递都是引用传递

2.1可变对象的传递:字典、列表、集合、自定义对象 ,直接传递地址

2896515708032
2896515708032
2896515708032
[10, 20, 30]

2.2不可变对象传递:数字、字符串、元组、function,赋值操作时,系统创建新对象

b=10
print(id(b))
def f1(m):
    print(id(m))
    m=m+20
    print(id(m))
f1(b)

结果:

2197555276368
2197555276368
2197555277008

三、类

1.类名采用驼峰原理,类中包含方法与属性

class Student:
    def __init__(self,name,score):  #self必须是第一个参数
        self.name=name
        self.score=score
    def myscore(self):
        print("{0}的分数是{1}".format(self.name,self.score))
s1=Student("小明",100)
s1.myscore()

结果:小明的分数是100

2.__init__()构造函数要点

2.1名称固定,必须为__init__()

2.2self必须为第一个参数,指代刚创建的实例对象

2.3通过“类名(参数列表)”调用构造函数

例:用s1=Student("小明",100)

3.类对象与实例对象:类对象只有一个,实例对象有多个

4.实例属性:每个实例对象保存一份

在构造函数中,self.实例属性名=初始值

在实例方法中,self.实例属性名

创建实例对象后: obj1=类名()

                              obj1.实例属性名=值

4.实例方法

语法:

def 方法名(self[参数列表]):

    方法体

调用:对象名.方法名

class Country(object):
    def __init__(self,name):
        self.name=name

    def ord_fun(self):
        '''定义实例方法,至少一个self参数'''
        print("实例方法")
    @classmethod
    def class_fun(cls):
        '''定义类方法,至少一个cls参数'''
        print("类方法")
    @staticmethod
    def static_fun():
        '''定义静态方法,无默认参数'''
        print("静态方法")
f1=Country("中国")
f1.__init__("江西")
f1.ord_fun()
f1.class_fun()
f1.static_fun()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005008.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号