快捷搜索:  手机  明星

python中如何创建并使用类(Python自学从入门到实践)

python中如何创建并使用类(Python自学从入门到实践)我的理解:根据类来创建对象,这个过程叫;实例化,只有这样才能使用类。(这个过程很像函数的定义 与 调用,不调用的情况下函数是无效的。)3;根据类来创建对象称为实例化,这让你能够使用类的实例。我的理解;这章非常重要,学会面对对象编程,是程序编写最有效的方法。2;类分为事物和情景,基于这些类来创建对象,编写类时同一大类对象都有通用的行为。我的理解;创建对象是基于类来的,不同的类对应不同的对象,并且同一大类具备通用的行为。

关于类与对象的说明;

面向对象编程是最有效的软件编写方法之一,在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。编写类时,你定义一大类对象都有的通用行为。基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。使用面向对象编程可模拟现实情景,其逼真程度达到了令人惊讶的地步。根据类来创建对象称为实例化,这让你能够使用类的实例。

针对上面的内容我拆解的理解一下:(拆解原文内容,变成自己能理解的这个过程很重要)

1;面向对象编程是最有效的软件编写方法之一。

我的理解;这章非常重要,学会面对对象编程,是程序编写最有效的方法。

2;类分为事物和情景,基于这些类来创建对象,编写类时同一大类对象都有通用的行为。

我的理解;创建对象是基于类来的,不同的类对应不同的对象,并且同一大类具备通用的行为。

3;根据类来创建对象称为实例化,这让你能够使用类的实例。

我的理解:根据类来创建对象,这个过程叫;实例化,只有这样才能使用类。(这个过程很像函数的定义 与 调用,不调用的情况下函数是无效的。)

4;在面向对象的程序设计过程中有两个重要概念:类(class) 和对象(object)

我的理解:Python支持面向对象的三大特征;1;封装,2;继承和多态,3;子类继承父类同样可以继承到父类的变量和方法。

上面的内容还是比较晦涩难懂的,换成更容易明白的内容:

假设;一家做衣服的工厂,同一类的衣服都是用一个模板(这个模板就是类)来做的。

生产的衣服有不同的颜色,不同的大小,生产出来的不同的衣服就是类的对象,也可以说是类的实例化。

那么在Python里定义一个类,一定需要类的变量!,生成对象的时候,一定需要方法。


以狗为例子。

1;狗都有名字,年龄(属性-类的变量)。 2;狗会蹲下,会打滚(方法-创建对象的方法)。最后我们创建狗类,里面含有狗的信息,狗的行为。

1;创建狗类;

创建每个狗实例;都需要存储名字和年龄,同时我们赋予了狗会蹲下和打滚。(当然你还可以赋予更多内容)

定义类 和 定义函数的不同之处:

# 函数是用def 开头,后面跟函数名 括号 冒号 【def 函数名():】

# 类是用class 开头,后面跟大写字母的类名 冒号【 class Dog:】

class Dog: # 这跟函数说明文档是一样的 ''' 一次模拟小狗的简单尝试''' # 查看说明文档的方法是一样的 print(Dog.__doc__)

2;前半段代码结构如下:

class Dog: # 这跟函数说明文档是一样的 ''' 一次模拟小狗的简单尝试''' # 类下面跟着是函数,后面跟着是; def __init__(self name age): '''初始化属性name和age''' self.name=name self.age=age def sit(self): ''' 模拟小狗收到命令时蹲下''' print(f"{self.name}is now sitting.") def roll_over(self): ''' 模拟小狗收到命令时打滚''' print(f"{self.name}rolled over!")

来看图分解:

python中如何创建并使用类(Python自学从入门到实践)(1)

1;定义一个为狗的类,首字母大写指的就是类,后面没有()

2;编写类的说明文档,可用类名.__doc__ 一共是4个下划线。

3;这个__int__( )是一个特殊的方法,每当咱们需要根据狗类创建新的实例 python都会自动运行它,(暂时我们不用管为什么使用这个方法)只要输入错这个方法就OK,注意是int左右两边都有2个下划线。

(3.1)再来说一下__int__(self name age) 还记得函数吧,这里面的都是形参,所以这个类里面包括了3个形参,其中self 这个形参是一定要有的。为什么这个self一定要有?他的作用是什么?

Python调用这个方法来创建狗实例时,将自动传入实参self。每个与实例相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。创建Dog实例时,Python将调用Dog类的方法__init__()。我们将通过实参向Dog()传递名字和年龄,self会自动传递,因此不需要传递它。每当根据Dog类创建实例时,都只需给最后两个形参(name和age)提供值。

4;两个变量前面都有self,这样做的目的是:以self为前缀的变量可供类中的所有方法使用,可以通过类的任何实例来访问。【类的变量】

self.name= name获取与形参name相关联的值,并将其赋给变量name,然后该变量被关联到当前创建的实例。self.name= name获取与形参name相关联的值,并将其赋给变量name,然后该变量被关联到当前创建的实例,像这样可通过实例访问的变量称为属性。

5;这就是咱们前面学习的函数:也是方法。【类的方法】

总结一下上面的关键内容:

1;Python类所包含的最重要的两个成员变量 和 方法

代码中的变量和方法是:变量:第4条。 方法(也称呼为实例方法):第5条。

第4条;类变量属于类的本身,用于定义该类本身所包含的状态数据。

第5条;方法则用于定义该类的对象的行为或功能实现。

直至现在,代码运行的话不会呈现任何内容。只是描述了蹲下和打滚,那咱们就先不传入实参,只调用类里的函数,来看看能否显示内容吧。Python告诉我无法调用,(未解析的引用)。

python中如何创建并使用类(Python自学从入门到实践)(2)

看来必须先描述是谁的狗,也就是需要输入狗的实参,信息,才行,试试看。设定变量为我的狗。mydog

python中如何创建并使用类(Python自学从入门到实践)(3)

python中如何创建并使用类(Python自学从入门到实践)(4)


根据上面所学,我们再创建更多的实例;

class Dog: def __init__(self name age): '''初始化属性name和age''' self.name = name self.age = age # 描述了狗的行为,蹲下 def sit(self): ''' 模拟小狗收到命令时蹲下''' print(f"{self.name}is now sitting.") # 描述了狗的行为,打滚 def roll_over(self): ''' 模拟小狗收到命令时打滚''' print(f"{self.name}rolled over!") # 类的实例化2个 # 把类赋值mydog,并传入实参。name='旺柴',age=3 mydog = Dog('旺柴 ' 3) nidog= Dog('哮天犬 ' 6) print(f'我的狗名字是{mydog.name},它已经{mydog.age}岁了') # 再来试试调用狗的行为,看看能否成功。 mydog.sit() mydog.roll_over() print(f'你的狗名字是{nidog.name},它已经{nidog.age}岁了') nidog.sit() nidog.roll_over()

python中如何创建并使用类(Python自学从入门到实践)(5)

创建好类以后,只要新建一个实例,就能很轻松地打印内容。


作业1:

python中如何创建并使用类(Python自学从入门到实践)(6)

属性:restaurant_name:餐厅的名字, cuisine_type: 厨房的类型。【类的变量】

方法:describe:描述餐厅能生产什么菜,open:描述餐厅的营业时间。【类的方法】

class Restaurant: def __init__(self restaurant_name cuisine_type): # 初始化属性 self.restaurant_name=restaurant_name self.cuisine_type=cuisine_type # 定义方法 def describe_restaurant(self): print(f'{self.restaurant_name}最擅长做夜宵一类的菜品,尤其烧烤类,鱼虾类。') def open_restaurant(self): print(f"{self.restaurant_name}营业时间是早9:00 到晚23:00") # 类的实例化 cting=Restaurant('中华美食馆' '油焖龙虾,蒜香龙虾') # 打印两个属性 print(f'这家餐馆的名字是{cting.restaurant_name} 里面最好吃的菜是{cting.cuisine_type}') #调用两个方法: cting.describe_restaurant() cting.open_restaurant()

python中如何创建并使用类(Python自学从入门到实践)(7)

题目2:

python中如何创建并使用类(Python自学从入门到实践)(8)

一定要自己上手练一下就会熟悉, 如何初始化属性,定义方法了(定义方法还稍微简单点就跟定义函数一样!)

class Restaurant: def __init__(self restaurant_name cuisine_type): # 初始化属性,确定变量 self.restaurant_name=restaurant_name self.cuisine_type=cuisine_type # 定义方法 def describe_restaurant(self): print(f'{self.restaurant_name}最擅长做夜宵一类的菜品,最好吃的菜品是:{self.cuisine_type}。') def open_restaurant(self): print(f"{self.restaurant_name}营业时间是早9:00 到晚23:00") # 类的实例化3个 cting=Restaurant('中华美食馆,' '油焖龙虾,蒜香龙虾') cting1=Restaurant('美味早餐店,' '鲜肉包,鲜豆浆') cting2=Restaurant('管饱饭,' '10元吃饱,15元吃好经济实惠') #调用 第一家餐厅的,1个方法: cting.describe_restaurant() # 调用 第二家餐厅的,1个方法: cting1.describe_restaurant() # 调用 第三家餐厅的,1个方法: cting2.describe_restaurant()

python中如何创建并使用类(Python自学从入门到实践)(9)

题目3:

python中如何创建并使用类(Python自学从入门到实践)(10)

属性:first_name last_name,【类的变量】

方法:【类的方法】

describe_user() 对对象的描述

greet_user() 对对象的问候;

class Yonghu: def __init__(self first_name last_name): # 初始化属性 self.first_name=first_name self.last_name=last_name # 定义方法 def describe_user(self): print(f"他是:{self.first_name}{self.last_name} 他年龄不小但一直爱学习,尤其喜欢Python") def greet_user(self): print(f"欢迎{self.first_name}{self.last_name} 来到自学课堂,要相信自己,学习力是最强的能力") # 给个变量名,传入实参。 yonghu1=Yonghu('陈' '二狗') yonghu2=Yonghu('李' '大胖') yonghu3=Yonghu('刘' '梅') yonghu1.describe_user() yonghu1.greet_user() yonghu2.describe_user() yonghu2.greet_user() yonghu3.describe_user() yonghu3.greet_user()

python中如何创建并使用类(Python自学从入门到实践)(11)

注意的点,总结一下:

1;类=属性 方法

2;实例化类需要赋值给一个变量,因为通过一个类可以实例化很多个不同的对象!

3;创建类的实例化之后,即可以调用类的属性,也可以调用类的方法,非常灵活。

猜您喜欢: