一、Python class object概述
当我们写Python程序时,我们经常需要定义和使用类对象。在Python中,类是一种特殊的对象,它可以用来实例化对象,包含数据属性和方法。类对象是指它们由类定义而不是实例化生成,存储在内存中的对象。Python中的所有事物都是对象,包括模块、函数、数字等等。因此,类也是一个对象,对象具有属性和方法,同样的,类也具有属性和方法。 在Python中,定义一个类对象的语法如下:
class ClassName:
def __init__(self, param1, param2):
self.param1 = param1
self.param2 = param2
def method1(self, param):
self.param1 += param
其中__init__
方法是类的构造函数,用于初始化类的属性。self
关键字是类的实例,类的属性是通过self
关键字访问的,在Python中,self
是必需的。
二、Python class object的属性
Python中的类对象具有属性,属性是指在类定义中声明的变量。Python中的所有属性都是公共的,可被类和类的实例访问。 Python中添加属性的语法如下:
class ClassName:
def __init__(self, name, age):
self.name = name
self.age = age
obj = ClassName('Tom', 18)
print(obj.name) #Tom
print(obj.age) #18
在上面的例子中,我们定义了一个名为ClassName的类,该类包含两个属性:name和age。在类的构造函数__init__
中,我们使用self
关键字分别初始化了这两个属性。接下来,我们实例化了一个对象obj
,使用"."运算符访问了该对象的name和age属性。
三、Python class object的方法
在Python中,类对象还具有方法,方法是指在类定义中声明的函数。Python中的方法类似于函数,可以接受参数,然后执行一些操作。 Python中添加方法的语法如下:
class ClassName:
def __init__(self, name, age):
self.name = name
self.age = age
def show(self):
print("My name is %s, I'm %d years old" % (self.name, self.age))
obj = ClassName('Tom', 18)
obj.show() #My name is Tom, I'm 18 years old
在上面的例子中,我们在类定义中添加了一个show
方法,该方法接受一个self
参数,用于访问类属性。在show
方法中,我们使用print
函数输出了实例的name
和age
属性值。
四、Python class object的继承
在Python中,可以通过继承来创建一个新类。子类会继承父类的所有属性和方法,并且可以添加自己的属性和方法。 Python中实现继承的语法如下:
class Parent:
def __init__(self, name):
self.name = name
def show(self):
print("Parent name is %s" % self.name)
class Child(Parent):
def __init__(self, name, age):
super().__init__(name)
self.age = age
def show(self):
super().show()
print("Child name is %s, age is %d" % (self.name, self.age))
obj = Child('Tom', 10)
obj.show() #Parent name is Tom Child name is Tom, age is 10
在上面的例子中,我们定义了一个Parent
类和一个Child
类,Child
类是Parent
类的子类。Child
类继承了Parent
类的所有属性和方法,然后根据自己的需求添加了自己的属性和方法。在Child
类的构造函数中,我们使用super
函数调用了Parent
类的构造函数,初始化了name
属性。然后,我们定义了一个show
方法,并使用super
函数调用了Parent
类的show
方法,最终输出了Child
类的name
和age
属性。
五、Python class object的多态
在Python中,多态是指同一个方法名可以在不同的类中具有不同的实现。 Python中实现多态的语法如下:
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
class Cow(Animal):
def speak(self):
return "Moo!"
for animal in (Dog(), Cat(), Cow()):
print(animal.speak())
在上面的例子中,我们定义了一个Animal
类以及三个子类:Dog
、Cat
、Cow
。每个子类都重写了Animal
类的speak
方法,从而使得这个方法在不同的类中实现了不同的功能。最后,我们使用一个for
循环,遍历三个子类对象,并依次输出它们的speak
方法调用的结果。
六、小结
Python class object是Python的一种特殊对象。它具有属性和方法,可以通过继承创建子类,实现多态等特性。在Python编程中,使用class object可以更好地组织代码,提高代码的可读性和可维护性。