Python札记31_self和数据流转

作者: 皮皮大 | 来源:发表于2019-07-04 20:56 被阅读0次

    本文中主要讲解参数self的作用和数据流转的知识。


    self

    类里面的任何方法或者说函数的第一个参数必须是self。但在创建实例的时候,没有用到这个参数,不显式得写出来。

    例子

    class Person:
        def __init__(self, name):
            self.name = name
            print(self)
            print(type(self))
    boy = Person("xiaoming")
    

    结果如下:

    <__main__.Person object at 0x0000027509BA9898>
    <class '__main__.Person'>
    

    看下boy实例

    boy
    <__main__.Person at 0x27509ba9898>
    
    image.png

    总结:

    • 创建实例先执行构造函数
    • self是类Person的实例
    • selfboy引用的实例对象是一样
    • 创建实例的时候,实例变量作为第一个参数传给了self,所以初始化函数中的self.name就是实例的属性
    • 只有实例化后,才会调动init()方法,才会有它的属性

    数据流转

    将类实例化,通过实例来执行类中的各种方法,应用实例的属性是最常见的操作。

    class Person:
        def __init__(self, name):
            self.name = name
        
        def get_name(self):
            return self.name
        
        def age(self, n):
            self.age = n
            
        def color(self, color):
            print("{0} is {1}".format(self.name, color))
            
        def get_age(self):
            print("{0}age is {1}".format(self.name, self.age))
    
    boy = Person("xiaoming")
    boy.get_name()
    boy.age(20)
    boy.color("black")
    boy.get_age()
    
    结果:
    xiaoming is black
    xiaomingage is 20
    

    总结

    • 创建了实例对象boyself引用了实例对象;boy主外,self主内
    • self是个实例,具有属性name”xiaoming”这个具体的数据,通过初始化函数传给了self.name
    • 在类Person中的其他方法中,self参数必选显式地写出来,表示承接self实例对象和它的属性

    相关文章

      网友评论

        本文标题:Python札记31_self和数据流转

        本文链接:https://www.haomeiwen.com/subject/whldhctx.html