《Python编程从入门到实践》记录之类的创建

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。

同时,也可以使用句点表示发访问类的方法


上诉代码运行结果为:

 

猜你喜欢

转载自blog.csdn.net/Sophia_11/article/details/84445447