内置函数(内置函数if else对齐,用于外置函数判断)
def name_print(isChinese,name,FamilyName):
def inner(a,b):
print("{0},{1}".format(a,b))
if isChinese:
inner(FamilyName,name)
else:
inner(name, FamilyName)
name_print(True,“三”,“高”)
name_print(False,"yy ",“maya”)
高,三
yy ,maya
nonlocal关键字:
nonlocal用来声明外部的局部变量,global用来声明全局变量
def f1():
a=3
print(“f1:out”,a)
def f2():
nonlocal a
print("f2:inner",a)
a=300
f2()
print("f1:outer", a)
f1()
f2:inner 3
f1:outer 300
LEGB规则:
Local局部变量——Enclosed嵌套函数——Global全局变量——Build in内置变量
类的结构:方法(函数)+属性(变量)
类名一般首字母大写
class Student:
def init(self,name,score): (自建函数两个下划线,self必须位于第一个参数)
self.name=name
self.score=score
def say_score(self):
print("{0}的分数是:{1}".format(self.name,self.score))
s1=Student(“a”,89) (通过类名来调用构造函数)
s1.say_score()
a的分数是:89
构造函数;
inti()初始化对象,给实例属性赋值。
new()创建对象
对象:ID,TYPE,value(属性+方法)
类属性:类的变量,可以被所有实例对象共享。
类方法:@classmethod
def 类方法名(cls,[形参]):
函数体
静态方法:定义与“类对象无关的方法”
@staticmethod
def 静态方法名([形参]):
函数体
__del__析构函数,垃圾回收方法,引用计数为0
class Person:
def del(self):
print(“销毁对象:{0}”.format(self))
f1=Person()
f2=Person()
del(f2)
print(“结束”)
销毁对象:<main.Person object at 0x021B65D0>
结束
销毁对象:<main.Person object at 0x0030C450>
__call__方法调用对象
class SalaryAccount:
def call(self,salary):
print(“发工资了!”)
yearSalary=salary*12
daySalary=salary//27.5
hourSalary=daySalary//8
return dict(yearSalary=yearSalary,monthSalary=salary,daySalary=daySalary,hourSalary=hourSalary)
s=SalaryAccount()
print(s(30000))
发工资了!
{‘yearSalary’: 360000, ‘monthSalary’: 30000, ‘daySalary’: 1090.0, ‘hourSalary’: 136.0}