1.函数中的全局变量与局部变量
全局变量:
在函数和类定义之外声明的变量。作用域为定义的模块,从定义位置开始到模块结束。
全局变量降低了函数的通用性和可读性,要尽量避免全局变量的使用。
全局边个两一般作为常量使用。
函数内改变全局变量的值要用global说明
局部变量:
在函数体内(包含形式参数)声明的变量。
局部变量的引用比全局变量快,有限考虑使用。
如果局部变量和全局变量同名,则在函数内隐藏全局变量,只是用同名的局部变量。(局部变量优先于全局变量)
2.类的定义
# 构造函数-类
class Student: # 类名一般为首字母大写,驼峰原则
def __init__(self, name, score): # self必须位于第一个参数
self.name = name
self.score = score
def say_score(self): # self必须位于第一个参数
print("{0}的分数是:{1}".format(self.name, self.score))
s1 = Student("胡皓", 100) # 通过类名()调用构造函数
s1.say_score()
s2 = Student("高希希", 99)
s2.say_score() # 程序员编写
Student.say_score(s2) # 解释器执行的时候
print(dir(s2)) # 获得所有的属性
print(s2.__dict__) # 获得定义的属性
print(isinstance(s2,Student)) # 判断类型
3.实例对象和属性
"""
实例属性:self.A=A
实例方法:1.定义实例方法时,第一个参数必须为self。和前面一样,self指的是当前的实例对象。
2.调用实例方法时,不需要也不能给self传递参数,self由解释器自动传参。
"""
class Student: # 类名一般为首字母大写,驼峰原则
def __init__(self, name, score): # self必须位于第一个参数
self.name = name # 实例属性
self.score = score # 实例属性
def say_score(self): # self必须位于第一个参数
print("{0}的分数是:{1}".format(self.name, self.score))
4.类对象和类属性
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)
s1 = Student("gxx",60)
s1.say_score()