嵌套函数
def print_name(country,name,familyname):
def print_name2(a,b):
print(a,b)
if country:
print_name2(name,familyname)
else:
print_name2(familyname,name)
print_name(1,"kk","lv")
nonlocal 局部变量
a=5
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)
类的定义
class 类名:
类体
1. 类名必须符合“标识符”的规则;一般规定,首字母大写,多个单词使用“驼峰原则”。
2. 类体中我们可以定义属性和方法。
3. 属性用来描述数据,方法(即函数)用来描述这些数据相关的操作。
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))
kk=Student('王天',99)
kk.say_score()
__init__构造方法和__new__方法
Python 对象包含三个部分:id(identity 识别码)、type(对象类型)、value(对象的值)。
实例属性和实例方法
实例属性是从属于实例对象的属性,也称为“实例变量”。他的使用有如下几个要点:
1. 实例属性一般在__init__()方法中通过如下代码定义:
self.实例属性名= 初始值
2. 在本类的其他实例方法中,也是通过self 进行访问:
self.实例属性名
3. 创建实例对象后,通过实例对象访问:
obj01 = 类名() #创建对象,调用__init__()初始化属性
obj01.实例属性名= 值#可以给已有属性赋值,也可以新加属性
新加的属性,在新的实例上没有新的属性
实例方法
实例方法是从属于实例对象的方法。实例方法的定义格式如下:
def 方法名(self [, 形参列表]):
函数体
方法的调用格式如下:
对象.方法名([实参列表])
· 其他操作:
1. dir(obj)可以获得对象的所有属性、方法
2. obj.__dict__ 对象的属性字典
3. pass 空语句
4. isinstance(对象,类型) 判断“对象”是不是“指定类型”
类对象
类属性
类属性是从属于“类对象”的属性,也称为“类变量”。由于,类属性从属于类对象,可以
被所有实例对象共享。
类属性的定义方式:
class 类名:
类变量名= 初始值
class Student:
company = "SXT" #类属性
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)
类方法
类方法用来操作类属性
新建对象时候,没有类属性,也没有类方法
class Student:
company = "SXT" #类属性
@classmethod
def printCompany(cls):
print(cls.company)
Student.printCompany()
__del__方法(析构函数)和垃圾回收机制
__