class OldboyStudent:
school='oldboy'
def choose_course(self):
print('is choosing course')
stu1=OldboyStudent()
stu2=OldboyStudent()
stu3=OldboyStudent()
# print(stu1.__dict__) # 此时的对象返回的是一个空字典,里面没有任何属性,三个对象都是
# print(stu2.__dict__)
# print(stu3.__dict__)
对象的本质就是一个名称空间而已,对象名称空间是用来存放自己独有的名字或属性。
类中存放的是所有对象共有的属性。
stu1.name='耗哥' # 等同于stu1.__dict__["name"] = "耗哥" 等同于往对象里添加属性。
stu1.age=18
stu1.sex='male'
# print(stu1.name,stu1.age,stu1.sex)
# print(stu1.__dict__) # 打印出来是一个包含三个键值对的字典。
# 例2
class OldboyStudent:
school='oldboy'
def choose_course(self):
print('is choosing course')
stu1=OldboyStudent()
stu2=OldboyStudent()
stu3=OldboyStudent()
def init(obj,x,y,z):
obj.name=x
obj.age=y
obj.sex=z
# stu1.name='耗哥'
# stu1.age=18
# stu1.sex='male'
init(stu1,'耗哥',18,'male') # 定义一个形参中包含对象obj的函数,将调用类生成的对象当作实参传入给obj。
class OldboyStudent:
school='oldboy'
def __init__(obj, x, y, z): #会在调用类时自动触发
obj.name = x #stu1.name='耗哥'
obj.age = y #stu1.age=18
obj.sex = z #stu1.sex='male'
def choose_course(self):
print('is choosing course')
#调用类时发生两件事(很重要*****)
#1、创造一个空对象stu1(返回的是空字典)
#2、自动触发类中__init__功能的执行,将stu1以及调用类括号内的参数一同传入
stu1=OldboyStudent('耗哥',18,'male') # OldboyStudent.__init__(stu1,'耗哥',18,'male') 前后效果相同
stu2=OldboyStudent('猪哥',17,'male')
stu3=OldboyStudent('帅翔',19,'female')