zoukankan      html  css  js  c++  java
  • python的self之个人理解

    本文参考http://www.cnblogs.com/linuxcat/archive/2012/01/05/2220997.html

    Python中的self一般用于类的方法中,当然一个独立的函数也可以加上self参数,但是如果没有需要岂不是在给自己找麻烦,因为调用的时候还要传进去一个空参数(我以前都是这样做的,惭愧)。

    self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。当然self也可以换成其他的自己喜欢的词,除非你不想让别人读取懂自己的程序

    #coding=utf-8
    class Person:
        def __init__(self,name):
            self.name=name
        def sayhello(self):
            print 'Hello, my name is:',self.name
    p=Person('Bill')
    p.sayhello()

    self指的是类实例对象本身而不是类本身。个人认为self的作用主要是标示公有成员变量的作用,我们知道,在C++中,可以用private或者public来定义类的一个属性,即类成员变量,这个变量可以被类中的所有方法使用。但是,python是一种动态语言,使用变量前不用定义或者声明,那么,如果我在类的一个方法定义了一个变量,这个变量就唯一的属于这个方法,如果其他方法想用这个变量呢?不好意思,不能使用。而使用self则可以解决这个问题,self会告诉所有的方法:这个变量是我们共有的,可以随便用哟

    #coding=utf-8
    class Person:
        def __init__(self,name):
            self.name=name
            mame1=name #name1只属于_init_方法,sayhello不能使用
        def sayhello(self):
            print 'Hello, my name is:',self.name
    p=Person('Bill')
    p.sayhello()
  • 相关阅读:
    php使用PHPMailer邮件类发送邮件
    apache一个IP一个端口对应多个域名
    网页宽度自动适应手机屏幕宽度的方法
    PHP抓取网页图片
    innodb存储引擎
    mysql存储引擎概述
    mysql事务
    mysql字符集
    mysql数据对象
    SQL-基础学习4--聚集函数:AVG(),COUNT(),MAX(),MIN(),SUM();聚集不同值:DISTINCT
  • 原文地址:https://www.cnblogs.com/lishuai0214/p/4283638.html
Copyright © 2011-2022 走看看