python中的定义_定义方法

python中的定义_定义方法由于Python对面向对象有着良好的支持,因此在Python中定义和使用类并不复杂。类的定义和使用跟函数的定义和使用有很多相似之处。一、类的定义在Python中,类的定义与函数的定义类似,所不同的是,类的定义是使用关键字”class”。与函数定义相同的是,在定义类时也要使用缩进的形式,以表示缩进的语句属于该类。类的定义形式如下。class<类名>…_python类的定义与使用

 

由于 Python 对面向对象有着良好的支持,因此在 Python 中定义和使用类并不复杂。类的定义和使用跟函数的定义和使用有很多相似之处。

一、类的定义

在 Python 中,类的定义与函数的定义类似,所不同的是,类的定义是使用关键字 “class”。与函数定义相同的是,在定义类时也要使用缩进的形式,以表示缩进的语句属于该类。类的定义形式如下。

class <类名>:
    <语句1>
    <语句2>
    ...
    <语句3>

与函数定义相同,在使用类之前必须先定义类。类的定义一般放在脚本的头部。在 Python 中也可以在 if 语句的分支或者函数定义中定义类。下面的代码定义了一个 human 类,并定义了相关的属性。

class human:    # 定义 human 类
    age = 0     # 定义 age 属性
    sex = ''    # 定义 sex 属性
    height = 0  # 定义 height 属性
    weight = 0  # 定义 weight 属性
    name = ''   # 定义 name 属性

类还可以通过继承的形式来进行定义。通过类继承来定义类的基本形式如下。

class <类名>(父类名):
    <语句1>
    <语句2>
    ...
    <语句3>

其中圆括号中的父类名就是要继承的类。以下所示的代码是通过继承 human 类来生成一个新类。

class student(human):    # 通过继承 human 类创建 student 类
    school = ''          # 定义 weight 属性
    number = 0           # 定义 weight 属性
    grade = 0            # 定义 weight 属性

上述通过 human 继承而来的 student 类,自动继承了 human 中的属性。同时在上面的代码中又为 student 类定义了其他的属性。

类定义后就产生了一个名字空间,与函数类似。在类内部使用的属性,相当于函数中的变量名,还可以在类的外部继续使用。类的内部与函数的内部一样,相当于一个局部作用域。不同类的内部也可以使用相同的属性名。

二、类的使用

类在定义后必须先实例化才能使用。类的实例化与函数调用类似,只要使用类名加圆括号的形式就可以实例化一个类。

类实例化后会生成一个对象。一个类可以实例化成多个对象,对象与对象之间并不会相互影响。类实例化后就可以使用其属性和方法等。下面的代码首先定义了一个 book 类,然后将其实例化。

class book:  # 定义 book 类
    author = ''  # 定义 author 属性
    name = ''  # 定义 name 属性
    pages = 0  # 定义 pages 属性
    price = 0  # 定义 price 属性
    press = ''  # 定义 press 属性


a = book()  # book 类实例化
print(a)  # 查看对象 a
print(a.author)  # 访问 author 属性
print(a.pages)  # 访问 pages 属性
print(a.price)  # 访问 price 属性

a.author = 'Tutu'  # 设置 author 属性
a.pages = 300  # 设置 pages 属性
a.price = 25  # 设置 price 属性
print(a.author)  # 重新访问 author 属性
print(a.pages)  # 重新访问 pages 属性
print(a.price)  # 重新访问 price 属性

b = book()  # 将 book 类实例化生成 b 对象
print(b.author)  # 访问 b 对象的 author 属性
print(b.price)  # 访问 b 对象的 price 属性
b.author = 'Butter'  # 设置 b 对象的 author 属性
b.price = 15  # 设置 b 对象的 price 属性

print(b.price)  # 访问 b 对象的 price 属性
print(a.price)  # 访问 a 对象的 price 属性,没有发生改变
print(b.author)  # 访问 b 对象的 author 属性
print(a.author)  # 访问 a 对象的 author 属性,没有发生改变
print(b.pages)  # 访问 b 对象的 pages 属性
print(a.pages)  # 访问 a 对象的 pages 属性

上面的脚本输出结果如下:

python中的定义_定义方法

上述例子只定义了类的属性,并在类实例化后重新设置其属性。从代码中可以看出,类的实例化相当于调用一个函数,这个函数就是类。函数返回一个类的实例对象,返回后的对象就具有了类所定义的属性。上述例子生成了两个 book 实例对象,设置其中一个对象的属性,并不会影响到另一个对象的属性,也就是说,这两个对象是相互独立的。

在 Python 中需要注意的是,虽然类首先需要实例化,然后才能使用其属性。但实际上当创建一个类以后就可以通过该类名访问其属性。如果直接使用类名修改其属性,那么将影响已经通过该类实例化的其他对象。演示代码如下。

class A:            # 定义类 A
    name = 'A'      # 定义属性 name 将其赋值为 'A'
    num = 2         # 定义 num 属性将其赋值为 2


print(A.name)       # 直接使用类名访问类的属性
print(A.num)        # 直接使用类名访问类的属性

a = A()             # 生成 a 对象
print(A.name)       # 查看 a 的 name 属性

b = A()             # 生成 b 对象
print(b.name)       # 查看 b 的 name 属性

A.name = 'B'        # 使用类名修改 name 属性
print(a.name)       # a 对象的 name 属性被修改
print(b.name)       # b 对象的 name 属性也被修改

每一次的 print 输出如下:

python中的定义_定义方法

今天的文章python中的定义_定义方法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58277.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注