• 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









  • 相关阅读:
    排序算法
    彩票随机6+1,开发实例
    synchronized关键字以及对象锁和类锁的区别
    shell基础
    easyui+Spring MVC+hibernate = 乐途
    easyui + jdbc 实现简单的数据库管理。
    js map
    struts2 using kindeditor upload pictures (including jmagic compressed images)
    easyui filebox 浏览图片
    easyui datagrid to excel
  • 原文地址:https://www.cnblogs.com/YiYA-blog/p/9834848.html
Copyright © 2020-2023  润新知