python_day24_class_类_方法_对象

#Author:"haijing"
#date:2018/10/22

# 1、python可以用 函数式编程 或者 面向对象编程

#-----------创建并调用类-----------#
# 创建类,名字为Bar,方法为foo(),其中foo()是一个函数
# class Bar:
# def foo(self,ab) #创建类中的方法时候,第一个形参必须为self,并没有实际的意思,调用时传一个参数就行了
# print('hello:%s' %ab)
# return 1

# 调用:
# obj=Bar() #创建中间人,中间人(obj)叫对象
# ret = obj.foo('haijing') #ret用来接收返回值
#
# #-----------self的解释-----------#
# self就是一个形式参数,代指中间人(对象),且能存值
# class Bar:
# def foo(self,arg):
# print(self,arg)
#
# z1=Bar()
# print(z1) #打印<__main__.Bar object at 0x03024750>
# z1.foo(111) #打印<__main__.Bar object at 0x03024750> 111
# print('=============') #分隔
# z2=Bar()
# print(z2) #打印<__main__.Bar object at 0x03024E10>
# z2.foo(666) #打印<__main__.Bar object at 0x03024E10> 666
#以上就说明z1=self z2=self 但是z1和z2不一样

#-----------在中间人(对象)里边放东西-----------#
# class Bar:
# def foo(self,arg):
# print(self,self.name,z.age,z.gender,arg)
# z=Bar() #z代指self
# z.name='haijing' #在中间人里边放东西
# z.age=18
# z.gender='male'
# z.foo(666) #打印<__main__.Bar object at 0x013BA530> haijing 18 male 666
#print(z.age) #也可以

# z1=Bar()
# z1.name='min' #在中间人里边放东西
# z1.age=18
# z1.gender='male'
# z1.foo(777) #打印<__main__.Bar object at 0x00D0A590> min 18 male 777

#-----------创建类中的特殊方法-----------#
# 创建类,名字为Bar,特殊方法为__init__(self),普通方法为foo()
# class Bar:
# def __init__(self): #创建特殊方法,名字都是__init__
# print('123')
# def foo(self,ab): #创建类中的方法时候,第一个形参必须为self,并没有实际的意思,调用时传一个参数就行了
# print('hello:%s' %ab)
# return 1
# z=Bar() #执行这一句就会python就会自动的去执行__init__(self)这个方法(函数)中的print('123') 即执行这一句会打印123

# #-----------创建类中的特殊方法(2)-----------#
# # 创建类名字为Bar,特殊方法为__init__(self,name,age) 普通方法为foo(),其中foo()是一个函数
# class Bar:
# def __init__(self,name,age): #创建特殊方法,由于这里有形参,所以在创建对象(67行)时必须加入参数
# #self=z name=haijing age=18
# print(name, age)
# self.name=name # 这样z.n=name赋值会出错 这一句就是在做封装
# self.age=age # 这样z.a=age赋值会出错 必须用self,不能用z 这一句也是在做封装
# def foo(self): #创建类中的方法时候,第一个形参必须为self,并没有实际的意思,调用时传一个参数就行了
# print(self.name,self.age)
# z=Bar('haijing',18) #由于__init__(self,name,age)中有形参,所以这里创建对象时也必须加入变量 这一句是在执行__init__(self,name,age)函数,打印haijing 18
# z.foo() #这一句是在执行foo(self)函数 打印haijing 18

#-----------创建类中的特殊方法(2)的应用-----------#
class Person:
def __init__(self,name,age): #构造方法
self.n=name
self.a=age
def show(self): #普通方法
print('%s--%s' %(self.n,self.a)) #%s--%s中两个%s均为占位符,分别用self.n和self.a代替

lihuan = Person('李欢',18) #是在执行__init__(self,name,age) 函数(方法)
lihuan.show() #是在执行show(self) 函数(方法)

hu = Person('胡祥林',73)
hu.show()

附图,说明上述代码执行过程:



不知道该说些什么,山鬼 是首轻音乐,希望你会喜欢
haijing in HZ
2018.10.23









原文地址:https://www.cnblogs.com/YiYA-blog/p/9834848.html