• python面向对象


    类与对象:

    先定义类,然后产生对象

    class People(object):
    def watch(self):
    print("watch")
    print(People.__dict__)
    ##dict属性:(类的变量名和函数名,这种类的属性是定义类完成后就有的,还有其他的一些信息)
    #{'__module__': '__main__', 'watch': <function People.watch at 0x000001B53D76C7B8>, '__dict__': <attribute '__dict__' of 'People' objects>, '__weakref__': <attribute '__weakref__' of 'People' objects>, '__doc__': None}
    zym = People()
    zym.watch()

    __init__属性:

    构造属性用的,他可以给对象定制自己独有的特征

    class People(object):
        def __init__(self,name,age):
            self.name = name
            self.age = age
        def watch(self):
            print("watch")
    print(People.__dict__)
    ##dict属性:(类的变量名和函数名,还有其他的一些信息)
    #{'__module__': '__main__', 'watch': <function People.watch at 0x000001B53D76C7B8>, '__dict__': <attribute '__dict__' of 'People' objects>, '__weakref__': <attribute '__weakref__' of 'People' objects>, '__doc__': None}
    zym = People("zym",18)
    zym.watch()
    print(zym.name) #zym
    print(zym.age) #18
    print(zym.__dict__) 
    #这个是实例变量属性的字典
    #{'name': 'zym', 'age': 18}

    注意事项:

    __init__中可以后任意的python代码

    但是一定不能有返回值

    类的特殊属性:

    #python为类内置的特殊属性
    类名.__name__# 类的名字(字符串)
    类名.__doc__# 类的文档字符串
    类名.__base__# 类的第一个父类
    类名.__bases__# 类所有父类构成的元组
    类名.__dict__# 类的字典属性
    类名.__module__# 类定义所在的模块
    类名.__class__# 实例对应的类(仅新式类中)

    class People(object):
        def __init__(self,name,age):
            self.name = name
            self.age = age
        def watch(self):
            print("watch")
    print(People.__dict__)
    #{'__module__': '__main__', '__init__': <function People.__init__ at 0x000001CE83F8C7B8>, 
    # 'watch': <function People.watch at 0x000001CE85001048>, '__
    # dict__': <attribute '__dict__' of 'People' objects>, 
    # '__weakref__': <attribute '__weakref__' of 'People' objects>, '__doc__': None}
    print(People.__doc__)
    #None
    print(People.__base__)
    #<class 'object'>
    print(People.__bases__)
    #(<class 'object'>,)
    print(People.__module__)
    #__main__
    print(People.__class__)
    #<class 'type'>
    print(People.__name__)
    #People

    类的两种属性:

    数据属性:

    是所有对象共享的属性

    类函数属性:

    类的函数属性是绑定给对象使用的,obj.xxxx(),进行调用

    self的意义:

    class People(object):
        def __init__(self,name,age):
            self.name = name
            self.age = age
        def watch(self):
            print("watch")
            print(self)
    
    #下面直接用类来调用类的函数属性,需要传入一个self值,传入他自己就是类本身
    People.watch(People)
    #watch
    #<class '__main__.People'>
    
    #下面用实例属性调用函数属性
    zym = People("zym",18)
    zym.watch()
    #<__main__.People object at 0x00000130C33836D8>

    对象之间的交互:

    class People(object):
        def __init__(self,name,age):
            self.name = name
            self.age = age
        def watch(self,movie):
            print("%s is watching %s"%(self.name,movie.name))
    
    class Movies(object):
        def __init__(self,name):
            self.name = name
    
    
    zym = People("zym",18)
    Tatinic = Movies("Tatinic")
    
    zym.watch(Tatinic)

    类的继承和派生:

  • 相关阅读:
    关于串口
    assigning to uiimagepickercontrollerdelegate from incompatible type
    CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 7.0'
    使用和不使用navigationbar分别处理显示和返回页面
    iphone坐标系统
    A valid provisioning profile for this executable was not found.
    Could not change executable permissions on the application
    Code Sign error: a valid provisioning profile matching the application's Identifier 'com. sensoSource.VoiceRecorder' could not be found
    从零开始开发iPhone,教你如何在真机调试iPhone应用程序
    iPhone 证书导出分享给多个开发人员操作
  • 原文地址:https://www.cnblogs.com/taozizainali/p/10613166.html
Copyright © 2020-2023  润新知