zoukankan      html  css  js  c++  java
  • Python self的用法

    1)不加self是局部变量,只在这个方法里有效;加self则是实例变量,相当于别的函数定义的变量你实例化出来就可以使用

    #coding:utf-8
    class Person:
        def __init__(self,name):
             self.name = name
        def sayhello(self):
             name = '此值是局部变量'
             print 'my name is :',name
             print 'my name is :',self.name
    
    p=Person('Bill')
    print p
    name = '此值是全局变量'
    Person(name).sayhello()
    
    打印结果:
    <__main__.Person instance at 0xb775706c>
    my name is : 此值是局部变量
    my name is : 此值是全局变量

    2) __new__()和__init__()

    发现实例化对象的时候,调用__init__()初始化之前,先调用了__new__()方法
    __new__()必须要有返回值,返回实例化出来的实例,需要注意的是,可以return父类__new__()出来的实例,也可以直接将object的__new__()出来的实例返回。
    __init__()有一个参数self,该self参数就是__new__()返回的实例,__init__()在__new__()的基础上可以完成一些其它初始化的动作,__init__()不需要返回值。
    若__new__()没有正确返回当前类cls的实例,那__init__()将不会被调用,即使是父类的实例也不行。
    我们可以将类比作制造商,__new__()方法就是前期的原材料购买环节,__init__()方法就是在有原材料的基础上,加工,初始化商品环节。

  • 相关阅读:
    2017蓝桥杯最大公共子串(C++B组)
    C++ memset函数用法
    2017蓝桥杯取位数(C++B组)
    2017蓝桥杯承压计算(C++ B组)
    安卓动画(Animation使用)
    2017蓝桥杯等差素数(C++B组)
    JSON取值前判断
    jstl
    centos到底下载哪个版本?
    HTML页面定时跳转方法
  • 原文地址:https://www.cnblogs.com/linyouyi/p/11409730.html
Copyright © 2011-2022 走看看