一、创建一个类
使用 class
关键字创建一个类:
class Person:
pass
如果你想为这个类增加属性,可以在类内部声明:
class Person:
age = 0
name = ''
在 Python 中,属性定义在类级别。同样,如果想增加方法,可以使用 def
语句定义:
class Person:
age = 0
name = ''
def setAge(self, age):
self.age = age
第一个参数 self
是实例化的一个引用,用来调用类内的实例,即在调用 setAge
方法时,通过实例化的引用来改变 age
属性。下面是使用类来创建对象:
p = Person()
p.setAge(18)
print(p.age)
输出结果为:
18
二、继承
Python 中一个类可以继承另一个类,继承可以使类与类之间有更紧密的联系,可以重载或扩展基类的属性和方法。我们可以通过继承来创建一些特殊的类。 下面是一个继承的例子:
class Animal:
def say(self):
print('I am an animal.')
class Dog(Animal):
def say(self):
print('I am a dog.')
在这个例子中,Animal
是 Dog
的父类,Dog
可以继承 Animal
的方法和属性。
接下来我们创建一个 Cucumber
类并继承自 Vegetable
:
class Vegetable:
def say(self):
print('I am a vegetable.')
class Cucumber(Vegetable):
pass
c = Cucumber()
c.say()
输出结果为:
I am a vegetable.
三、多态
多态是面向对象编程的基本概念之一,多态允许使用相同的方法调用不同的对象,从而实现不同的行为。 下面是一个多态的例子:
class Person:
def say(self):
pass
class Chinese(Person):
def say(self):
print('我是中国人。')
class American(Person):
def say(self):
print('I am American.')
def speak(person):
person.say()
p1 = Chinese()
p2 = American()
speak(p1)
speak(p2)
输出结果为:
我是中国人。
I am American.
四、封装
在 Python 中,我们可以通过下划线实现封装,可以有效的保护数据的安全性。对外部不可见的属性和方法,可以通过下划线实现内部封装。 下面是一个封装的例子:
class Person:
def __init__(self, name, age):
self._name = name
self._age = age
def _get_name(self):
return self._name
def _set_name(self, name):
self._name = name
name = property(_get_name, _set_name)
p = Person('Tom', 18)
print(p.name)
p.name = 'Lily'
print(p.name)
运行结果为:
Tom
Lily
在这个例子中,我们通过下划线实现对 name
属性的封装,并通过 @property
装饰器设置属性的 getter 和 setter 方法。
五、类方法和静态方法
在 Python 中,类方法和静态方法是两种特殊的方法。类方法是带有 @classmethod
装饰器的方法,它的第一个参数是 cls
,表示调用该方法的类。静态方法是带有 @staticmethod
装饰器的方法,它不需要传递任何参数。
下面是一个类方法和静态方法的例子:
class Person:
count = 0
def __init__(self, name, age):
self.name = name
self.age = age
Person.count += 1
@classmethod
def getCount(cls):
return cls.count
@staticmethod
def sayHi():
print('Hi')
p1 = Person('Tom', 18)
p2 = Person('Lily', 20)
print(Person.getCount())
Person.sayHi()
输出结果为:
2
Hi
在这个例子中,我们通过类方法实现了对象的计数,静态方法 sayHi
不需要传入参数,可以直接调用。
六、总结
Python 是一门面向对象的编程语言,在 Python 中,我们可以通过 class
关键字来创建一个类,并且可以在类内部定义属性和方法来实现各种功能。类可以继承另一个类,多态允许使用相同的方法调用不同的对象,实现不同的行为。封装可以有效的保护数据的安全性,可以使用下划线实现内部封装。类方法和静态方法是面向对象编程中两种特殊的方法,可以帮助我们更好的实现类的功能。