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

python表达式3Ⅰ5为什么为7_python 7?

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

python表达式3Ⅰ5为什么为7_python 7?

一、继续学习函数

嵌套函数(内部函数):

一般在什么情况下使用嵌套函数? 1. 封装 - 数据隐藏 外部无法访问“嵌套函数”。 2. 贯彻 DRY(Don’t Repeat Yourself) 原则 嵌套函数,可以让我们在函数内部避免重复代码。 3. 闭包 后面会详细讲解。
def printChineseName(name,familyName):
    print("{0} {1}".format(familyName,name))
def printEnglishName(name,familyName):
    print("{0} {1}".format(name, familyName))

#使用 1 个函数代替上面的两个函数
def printName(isChinese,name,familyName):
    def inner_print(a, b):
        print("{0} {1}".format(a, b))

    if isChinese:
        inner_print(familyName, name)
    else:
        inner_print(name, familyName)
printName(True,"小七","高")
printName(False,"George","Bush")
nonlocal 关键字 nonlocal 用来声明外层的局部变量。 global 用来声明全局变量。
#测试 nonlocal、global 关键字的用法
a = 100
def outer():
    b = 10
    def inner():
        nonlocal b #在内部函数中声明外部函数的局部变量
        print("inner b:",b)
        b = 20

        global a#声明全局变量
        a = 1000
    inner()
    print("outer b:",b)
outer()
print("a:",a)

LEGB规则

Python 在查找“名称”时,是按照 LEGB 规则(顺序)查找的: Local-->Enclosed-->Global-->Built in Local 指的就是函数或者类的方法内部(最内层函数) Enclosed 指的是嵌套函数(一个函数包裹另一个函数,闭包) Global 指的是模块中的全局变量 Built in 指的是 Python 为自己保留的特殊名称。
#测试LEGB
str = "global"#前两个不存在时才奏效
def outer():
    str = "outer"
    def inner():
        str = "inner"#最先奏效
        print(str)
    inner()
outer()

二、面向对象(Python支持的主要编程方式)

面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式更加接近人的思维,从而大大提高了编程的效率。 面向过程(找动词):适合简单的小规模问题。eg:1. 发动车 2. 挂挡 3.踩油门 4. 走你 面向对象(找名词):适合编写大规模程序面向对象方式造车,宏观分解问题,达到底层之后会使用面向过程。 对象的进化:简单数据、数组、结构体(各种数据结构就是用结构体定义的)、对象(数据以及处理数据的方法) 类的定义:对象是饼干,那类就是制作饼干的模具。
#类的熟悉
class Student:
    def __init__(self,name,score):#初始化,self表示对象自己,self存该对象的地址
    #构造方法第一个参数必须为 self
        self.name = name #实例属性 s
        self.score = score
        
    def say_score(self): #实例方法 self必须加
        print(self.name,'的分数是:',self.score)

s1 = Student('张三',80)
s1.say_score()

class Student:
    def __init__(self,name,score):
    #构造方法第一个参数必须为 self
        self.name = name #实例属性 (初始值)
        self.score = score

    def say_score(self): #实例方法 self必须加
        print(self,self.name,'的分数是:',self.score)

s1 = Student('张三',80)
s1.say_score()
print(dir(s1))
print(s1.__dict__)#直观的有的东西

函数和方法的区别:

1、本质一样;2、方法调用时,通过对象来调用。方法从属于特定的实例对象,普通函数没有这个特点;3、直观上看,方法定义需要self

__init__()和__new__()方法

 __init__()方法:初始化创建好的对象,初始化指的是:“给实例属性赋值”  __new__()方法: 用于创建对象,但我们一般无需重定义该方法

类对象  

class Student:#创建了一个类对象
    company = "UESTC" #类属性
    count = 0

    def __init__(self,name,score):
        self.name = name
        self.score = score
        Student.count = Student.count+1  #计数器,每创建一个类对象就加一
    def say_score(self):
        print("公司是:",Student.company)
        print(self.name,'的分数是:',self.score)
s1 = Student('我',90)
s1.say_score()
print(type(Student))
print('一共创建{0}个 Student 对象'.format(Student.count))
print(id(Student))

Stu2 = Student
s1 = Stu2()
print(s1)
print(id(s1))
class Student: 
    company = "SXT" # 类属性 
    @staticmethod 
    def add(a, b): # 静态方法 
        print("{0}+{1}={2}".format(a,b,(a+b))) 
        return a+b 
Student.add(20,30)
#析构方法
class Person:
     def __del__(self):
         print("销毁对象:{0}".format(self))
p1 = Person()
p2 = Person()
del  p2
print("程序结束")

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782916.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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