class Bar: def foo(self,arg): print(self.name,self.age,self.gender,arg) z1 = Bar() z1.name = 'Tom' z1.age = 30 z1.gender = 'male' z1.foo('why') print('================================================') z2 = Bar() z2.name = 'Mary' z2.age = 25 z2.gender = 'female' z2.foo('why') print('================================================') class Person: def __init__(self,name,age,gender): #__init__()叫做构造方法 self.n=name #n a g 分别对应参数 name age gender,方便后面使用时直接传参数,不用name1 = '张三' , name2 = '李四' 这么去写 self.a=age self.g=gender self.nationality = 'Chinese' print('个人信息') zhangsan = Person('张三',20,'男') #这里没有通过zhangsan.__init__()方式调用类Person的构造方法__init__(),但在创建对象zhangsan时已经自动调用了__init__(),所以才会打印出'个人信息' #print(zhangsan) lisi = Person('李四',24,'男') #print(lisi) print(zhangsan.n,zhangsan.a,zhangsan.nationality) #因为在__init__方法内已经定义过n a g 分别对应参数 name age gender,所以这里可以直接 对象名.n 对象名.a 对象名.g获取对应的值 print(lisi.n,zhangsan.g,lisi.nationality)
输出:
Tom 30 male why
================================================
Mary 25 female why
================================================
个人信息
个人信息
张三 20 Chinese
李四 男 Chinese