类的实例化过程

Posted Bigberg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的实例化过程相关的知识,希望对你有一定的参考价值。

一、定义一个类

class Dog(object):   # 定义class

    def __init__(self, name):  # 构造函数,构造方法 == 初始化方法
        self.name = name   # d.name = name

    def say_hi(self):   # 类的方法
        print("Hello, I am a dog. My name is", self.name)

    def eat(self, food):
        print("%s is eating %s." % (self.name, food))


d = Dog("xiaohei")  # Dog(d,"xiaohei")  d == self

# d 实例化的对象即实例,类中的self相当于实例

d.say_hi()   # d.say_hai(d)

d.eat(‘beaf‘)
  • 第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法
  • self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

 二、self代表的实例,而非类

  类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

class Dog(object):

    def prt(self):
        print(self)
        print(self.__class__)

d = Dog()


print(d)
print("-------------")
d.prt()


#输出
<__main__.Dog object at 0x000001DDBD10C5F8>
-------------
<__main__.Dog object at 0x000001DDBD10C5F8>
<class ‘__main__.Dog‘>

  从执行结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。

 

三、创建实例对象

  实例化类其他编程语言中一般用关键字 new,但是在 Python 中并没有这个关键字,类的实例化类似函数调用方式。  

# 创建一个Dog类的对象
d = Dog("xiaohei")

  实例化后的对象又称之为:实例

 

四、访问属性  

  您可以使用点(.)来访问对象的属性 

# 通过 d.方法   来访问属性
d.eat(‘beaf‘)

#输出
xiaohei is eating beaf.

  

以上是关于类的实例化过程的主要内容,如果未能解决你的问题,请参考以下文章

创建片段而不从 java 代码实例化它

Java类的实例化的初始化过程

片段事务中的实例化错误

详解JAVA对象实例化过程

python-- 类的实例化过程特征共有属性和私有属性

类基础_类的定义和实例化过程解析