前言
之前我们已经学习了Python基本的数据类型,函数与文件读写,接下来我们就来看看Python的面向对象的编程,如果学过类似于Java这种面向对象的编程语言,学起来对比Python的面向对象就会感觉十分的容易,作为一门脚本语言,Python在面向对象方面相较于java更加简洁和方便,少了很多的约束。
创建对象
和其他语言一样Python使用class关键字来声明一个类,类名采用驼峰命名法,首字母大写。
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
__init__()
方法是必不可少的,这是为了在实例化对象
正如上面代码所示,Pyhton类中
__init__()
方法是必不可少的,这是为了实例化对象初始化的,有点类似于Java中的构造函数。__init__()
方法中self是必不可少的,且必须放在第一位,就是本身的一个引用。
创建实例
Python通过以下方法实例化对象,不需要使用new关键字。
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
dog = Animal('lily', 2)
访问属性和方法
Python中属性和方法都可以直接访问
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
dog = Animal('lily', 2)
print(dog.age)
print(dog.name)
dog.run()
给属性添加默认值
Python可以给属性设置默认值,这样在初始化时就不用再传入参数了。
class Animal:
def __init__(self, age):
self.name = 'Lily'
self.age = age
def run(self):
print(self.name + " is running")
修改属性的值
Pyhton可以有两种方法来修改属性的值,首先可以通过直接访问修改属性值。
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
dog = Animal('lily', 2)
dog.name = 'Harry'
dog.age = 3
print(dog.age)
print(dog.name)
dog.run()
其结果如下图所示
还可以通过方法来更改属性值,类似于Java中的setter。
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
def update_name(self, name):
self.name = name
Dog = Animal('Harry', 2)
Dog.update_name('Lily')
Dog.run()
继承父类
Python中也可以继承,只不过没有使用extends关键字,而是直接使用括号。其中
super().__init__(name, age)
将子类与父类联系到了一起。
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
class Dog(Animal):
def __init__(self, name, age, leg):
super().__init__(name, age)
self.leg = 4
Harry = Dog("Harry", 2, 4)
print(Harry.leg)
重写方法
Python中重写方法比较简单,如果子类中有与父类同名的函数,子类的实例调用函数时直接调用子类的函数。
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
def update_name(self, name):
self.name = name
class Dog(Animal):
def __init__(self, name, age, leg):
super().__init__(name, age)
self.leg = 4
def run(self):
print("Dog is running")
Harry = Dog("Harry", 2, 4)
Harry.run()
最后
点赞就是最大的支持,更多文章和资料可以关注微信公众号QStack。