1、创建类
下边类是一个表示小狗的类,存储了名字和年龄,以及小狗蹲下(sit())和打滚(roll_over())的能力:
# 定义类名
class Dog():
"""一次模拟小狗的简单尝试""" # 文档字符串描述类功能
def __init__(self, name, age):
"""初始化属性name和age"""
self.name = name
self.age = age
def sit(self):
"""模拟小狗被命令时蹲下"""
print(self.name.title() + " is now sitting.")
def roll_over(self):
"""模拟小狗被命令时打滚"""
print(self.name.title() + " rolled over!")
根据上述代码讲解类:
- 类的名字为Dog,在Python中,类名称的首字母要大写
- 类也需要有文档字符串,对类的功能进行描述
- 类中的函数称为方法
- 方法_init_():一个特殊的方法,创建类示例时,Python会自动运行。开头和末尾各有两个下划线,是一种约定,为了避免Python默认方法与普通方法发生名称冲突。_init_()方法中,必须包含self形参,且必须放在最前面,它是指向示例本身的引用,每个与类相关联的方法都自动传递实参self(所以在创建类示例时,不用提供传递值)。
- self.name和self.age:两个变量都有前缀self,以self为前缀的变量都可供类中的所有方法使用,也可以通过类的任何示例来访问这些变量。
2、根据类创建实例
#!/usr/bin/env python
# -*- coding:utf-8 -*-
class Dog():
"""一次模拟小狗的简单尝试"""
def __init__(self, name, age):
"""初始化属性name和age"""
self.name = name
self.age = age
def sit(self):
"""模拟小狗被命令时蹲下"""
print(self.name.title() + " is now sitting.")
def roll_over(self):
"""模拟小狗被命令时打滚"""
print(self.name.title() + " rolled over!")
my_dog = Dog('willie', 6) # 创建一个类实例
print("My dog's name is " + my_dog.name.title() + ".") # 访问name属性的值
print("My dog is " + str(my_dog.age) + " years old.") # 访问属相age的值
my_dog.sit() # 访问类方法
my_dog.roll_over()
类实例中,可以使用句点表示法访问类的属性值,如my_dog.name何my_dog.age。
同时,也可以使用句点表示发访问类的方法。
上诉代码运行结果为: