Python 面向对象部分知识点小结
1. 类和对象
在Python中,一切皆为对象,对象是类的实例化。类是一种自定义的数据类型,它定义了对象的属性和方法。
1.1 类的定义和实例化
使用class
关键字定义一个类,类名通常采用驼峰命名法。通过类名后加括号的方式可以实例化一个对象。
示例代码:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person1 = Person(\"Alice\", 25)
person2 = Person(\"Bob\", 30)
1.2 属性和方法
类中的属性是对象的特征,方法是对象的行为。属性可以是变量,方法可以是函数。
示例代码:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print(\"Hello, my name is\", self.name)
person = Person(\"Alice\", 25)
person.say_hello() # 输出:Hello, my name is Alice
2. 继承和多态
继承是面向对象编程的重要概念,它允许一个类继承另一个类的属性和方法。多态是指同一个方法名可以在不同的类中有不同的实现。
2.1 继承
使用class 子类名(父类名)
的方式实现继承。子类可以继承父类的属性和方法,并且可以添加自己的属性和方法。
示例代码:
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
print(\"Woof!\")
class Cat(Animal):
def speak(self):
print(\"Meow!\")
dog = Dog(\"Buddy\")
dog.speak() # 输出:Woof!
cat = Cat(\"Kitty\")
cat.speak() # 输出:Meow!
2.2 多态
多态允许不同的对象对同一方法有不同的实现。通过方法的重写和方法的重载可以实现多态。
示例代码:
class Shape:
def area(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius * self.radius
shapes = [Rectangle(4, 5), Circle(3)]
for shape in shapes:
print(\"Area:\", shape.area())
3. 封装和访问控制
封装是将数据和方法包装在类中,通过访问控制来限制对类的属性和方法的访问。
3.1 访问控制
在Python中,属性和方法的访问控制通过命名约定来实现。以单下划线_
开头的属性和方法被视为私有的,不应该被外部访问。
示例代码:
class Person:
def __init__(self, name, age):
self._name = name
self._age = age
def _say_hello(self):
print(\"Hello, my name is\", self._name)
person = Person(\"Alice\", 25)
print(person._name) # 输出:Alice
person._say_hello() # 输出:Hello, my name is Alice
3.2 属性的封装
通过使用@property
装饰器和setter
方法,可以实现对属性的封装,控制属性的读取和修改。
示例代码:
class Person:
def __init__(self, name, age):
self._name = name
self._age = age
@property
def name(self):
return self._name
@name.setter
def name(self, value):
self._name = value
person = Person(\"Alice\", 25)
print(person.name) # 输出:Alice
person.name = \"Bob\"
print(person.name) # 输出:Bob
以上是Python面向对象部分的知识点小结,涵盖了类和对象、继承和多态、封装和访问控制等内容。希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 面向对象部分知识点小结 - Python技术站