`
mars914
  • 浏览: 432522 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python 中的self 变量

阅读更多

Python为什么要用self

       Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数 (self ),但在调用这个方法的时候不必为这个参数赋值 (显胜于隐 的引发)。Python的类的方法的这个特别的参数指代的是对象本身,而按照Python的惯例,它用self来表示。

 

为何Python给self赋值而你不必给self赋值?

例子说明:创建了一个类MyClass,实例化MyClass得到了MyObject这个对象,然后调用这个对象的方法MyObject.method(arg1,arg2) ,这个过程中,Python会自动转为Myclass.mehod(MyObject,arg1,arg2)

这就是Python的self的原理了。即使你的类的方法不需要任何参数,但还是得给这个方法定义一个self参数,虽然我们在实例化调用的时候不用理会这个参数不用给它赋值。

实例:

#!/usr/bin/python
# Filename: method.py
class Person: 
      def sayHi(self): 
             print 'Hello, how are you?'
p = Person()
p.sayHi()
# This short example can also be written as Person().sayHi()

 

输出:Hello, how are you?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

把p.sayHi()带个参数如:p.sayHi(p),得到同样的输出结果

如果把函数定义sayHi(self)中的self去掉的话,

这样就报错了:TypeError: sayHi() takes no arguments (1 given)

 

扩展

self在Python里不是关键字。self代表当前对象的地址。self能避免非限定调用造成的全局变量。

分享到:
评论

相关推荐

    python中类变量与成员变量的使用注意点总结

    ### Python中类变量与成员变量的使用注意点总结 #### 前言 在Python编程过程中,类变量和成员变量的正确使用对于程序的稳定性和可维护性至关重要。本文将深入探讨这两种变量的区别以及在实际编程中可能遇到的一些...

    Python 如何在字符串中插入变量

    在Python编程中,插入变量到字符串中是一种常见的需求,用于构建动态文本。本文将深入探讨如何在Python字符串中插入变量,以及如何优雅地处理变量缺失的情况。 首先,Python没有直接支持在字符串中替换变量的语法,...

    对python 中class与变量的使用方法详解

    ### Python中的Class与变量使用详解 在Python编程中,理解和掌握`class`及变量的使用是十分重要的。本文将从不同角度深入解析Python中的变量类型(包括全局变量、局部变量、对象变量、类变量等)及其作用域,并通过...

    python类和函数中使用静态变量的方法

    在Python编程语言中,类和函数的静态变量通常是指那些在多次调用中保持其值不变的变量。静态变量在其他面向对象的语言如Java或C#中比较常见,但在Python中,由于其动态特性的存在,实现静态变量的方式稍有不同。本篇...

    Python中的self用法详解

    在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。 class是面向对象的设计思想,instance(也即是...

    python的类变量和成员变量用法实例教程

    本文实例形式讲解了python的类变量和成员变量用法,对于Python程序设计有一定的参考价值。分享给大家供大家参考。具体如下: 先看看下面这段代码: class TestClass(object): val1 = 100 def __init__(self): ...

    Python Basics A Self-Teaching Introduction_teaching_python_

    《Python Basics A Self-Teaching Introduction》是一本旨在引导初学者深入理解Python编程基础的教材。这本书涵盖了Python语言的核心概念,旨在帮助读者通过自学掌握Python编程。"teaching python"这个标签表明本书...

    python中self原理实例分析

    本文实例讲述了python中self原理。分享给大家供大家参考。具体分析如下: 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会...

    python 基础-类成员变量,提供python2代码示例

    在Python中,实例变量通常通过`self`关键字引用,在类的方法中定义。`self`是一个指向对象本身的引用,不是必须的,但通常作为第一个参数使用,以便明确指出该方法是属于哪个实例的。 ```python class Person: def...

    Python私有变量的用法共1页.pdf.zip

    Python私有变量是编程中的一个重要概念,特别是在面向对象编程中。私有变量,也称为受保护的变量,是为了实现封装而设计的,它的主要目的是限制类的内部成员(变量和方法)对外部代码的直接访问,以保持数据的安全性...

    python实现类的静态变量用法实例

    本文实例讲述了python类的静态变量用法。分享给大家供大家参考。具体分析如下: 这里使用静态变量目的是在类中实现一个静态的队列,这里用数组实现,任何时候插入到队列中的数据不会和类的实例有直接关系。 __...

    简单分析python的类变量、实例变量

    实例变量是定义在方法中的变量,使用self绑定到实例上的变量,只是对当前实例起作用。 2、访问 类变量 在类的内部和外部类变量都可以直接使用className.类变量的形式访问。但是在类的内部,也可以使用self.类变量...

    学学Python_43类的成员02 调用父类构造函数

    在Python编程语言中,类是面向对象编程的基础。当我们创建一个子类时,有时需要调用父类的构造函数(初始化方法),以便继承并扩展父类的行为。在Python中,这个过程通常涉及到`__init__`方法。让我们深入探讨如何在...

    python 变量命名规范1

    下面将详细讲解Python中的变量命名规则及其背后的逻辑。 首先,变量命名的基本原则是清晰易读,避免使用具有误导性的名字。在Python中,变量名区分大小写,因此可以通过大小写来区分不同的单词。推荐使用小写字母和...

    python“静态”变量、实例变量与本地变量的声明示例

    在Python中,通常在`__init__`构造方法中声明实例变量,并使用`self.`前缀。`self`是一个指向实例本身的引用,允许我们在方法中访问和修改实例属性。例如: ```python class Test: def __init__(self): self....

    Python连连看小游戏源代码

    - **变量与数据类型**:在游戏开发中,变量用于存储各种数据,如玩家分数、游戏状态等。Python支持多种数据类型,如整型(int)、浮点型(float)、字符串(str)和布尔型(bool)。 - **控制结构**:包括条件语句...

    浅谈Python中的私有变量

    私有变量表示方法 在变量前加上两个下划线的是私有变量。 class Teacher(): def __init__(self,name,level): self.__name=name self.__level=level #获取老师的等级 def get_level(self): return self.__...

Global site tag (gtag.js) - Google Analytics