Python基础(二十五、对象)

文章目录

  • 一、类的定义和使用
    • 1.类的使用语法:
    • 2.成员变量和成员方法
    • 3.成员方法的定义语法
    • 4.注意事项
  • 二、实践
  • 三、构造方法
    • 1.什么是构造方法
    • 2.代码示例:
    • 3.构造方法的使用
  • 四、总结

一、类的定义和使用

1.类的使用语法:

class 类名称:

  • class是关键字,表示要定义类

类的属性

  • 类的属性,即定义在类中的变量(成员变量)
  • 类的行为,即定义在类中的函数 (成员方法)

创建类对象的语法

  • 对象 = 类名称()

2.成员变量和成员方法

那么,什么是类的行为(方法) 呢?

class student:
	# 类的属性——成员变量
	name = None
	age = None
	# 类的行为——成员方法
	def say_hi(self) :
		print(f"Hi大家好,我是{self.name}")

stu = student()
stu.name ="Joe"
stu.say_hi()# 输出: Hi大家好,我是Joe

可以看出,类中:

  • 不仅可以定义属性用来记录数据
  • 也可以定义函数,用来记录行为

其中:

  • 类中定义的属性(变量),我们称之为:成员变量
  • 类中定义的行为(函数),我们称之为:成员方法

3.成员方法的定义语法

在类中定义成员方法和定义函数基本一致,但仍有细微区别:

def 方法名(self,形参1......,形参N):
	方法体

可以看到,在方法定义的参数列表中,有一个self关键字:
self关键字是成员方法定义的时候必须填写

  • 它用来表示类对象自身的意思;
  • 当我们使用类对象调用方法的是,self会自动被python传入;
  • 在方法内部,想要访问类的成员变量,必须使用self

4.注意事项

self关键字,尽管在参数列表中,但是传参的时候可以忽略它如:

class Student:
	name = None
	def say_hi(self):
		print(“Hello 天家好")
	def say_hi2(self, msg):
		print(f"Hello 大家好,(msg》")
	
stu = Student()
# 调用的时候无需传参
stu.say_hi()
# 调用的时候,需要传msg参数
stu.say_hi2("很高兴认识大家")

可以看到,在传入参数的时候,self是透明的,可以不用理会它

二、实践

定义一个闹钟对象;

  • 成员变量:编号、价格
  • 成员方法:闹钟铃声

代码示例如下:

import winsound
class Clock:
    id = None
    price = None

    def ring(self):
        winsound.Beep(1000,3000)
        print(f"闹钟{self.id},价格是{self.price}元")

clock = Clock()
clock.id = "0101"
clock.price = "122"
clock.ring()

三、构造方法

1.什么是构造方法

Python类可以使用: __init__()方法,称之为构造方法。可以实现:

  • 在创建类对象(构造类)的时候,会自动执行
  • 在创建类对象 (构造类)的时候,将传入参数自动传递给 __init__()方法使用

2.代码示例:

# 定义一个名为Person的类
class Person:
   # 初始化方法,用于设置成员变量
   def __init__(self, name, age):
       self.name = name
       self.age = age
   
   # 成员方法,打印个人信息
   def print_info(self):
       print("姓名:", self.name)
       print("年龄:", self.age)
# 创建一个Person对象并调用成员方法
person1 = Person("张三", 25)
person1.print_info()

输出结果:

 # 姓名: 张三
 # 年龄: 25

在上面的代码中,我们定义了一个名为Person的类。在初始化方法__init__中,我们设置了两个成员变量name和age,它们分别用于存储人物的姓名和年龄。

    # 初始化方法,用于设置成员变量
    def __init__(self, name, age):
        self.name = name
        self.age = age

等于

# 定义一个名为Person的类
class Person:
	name = None
	age = None

在类中,我们还定义了一个成员方法print_info,该方法用于打印个人的姓名和年龄。

在主程序中,我们创建了一个Person对象person1,并传入了姓名"张三"和年龄25。然后,我们调用了person1对象的成员方法print_info,它将打印出姓名和年龄。

3.构造方法的使用

正常情况下定义对象的成员属性,创建对象给成员属性赋值代码如下:

# 定义一个名为Person的类
class Person:
	name = None
	age = None
# 创建一个Person对象并调用成员方法
person1 = Person()
person1.name = "张三"
person1.age = 23

而有了构造方法之后,创建对象给成员属性赋值代码可以简化为一行:

 # 定义一个名为Person的类
class Person:
    # 初始化方法,用于设置成员变量
    def __init__(self, name, age):
        self.name = name
        self.age = age
# 创建一个Person对象并调用成员方法
person1 = Person("张三", 25)

四、总结

1.现实世界的事物由什么组成?

  • 属性
  • 行为

类也可以包含属性和行为,所以使用类描述现实世界事物是非常合适的。

2.类和对象的关系是什么?

  • 类是程序中的“设计图纸
  • 对象是基于图纸生产的具体实体

3.什么是面向对象编程?

  • 面向对象编程就是,使用对象进行编程

即,设计类,基于类创建对象,并使用对象来完成具体的工作

4.构造方法

  • 名称:__init__注意init前后的2个下划线符号
  • 作用:构建类对象的时候会自动运行;构建类对象的传参会传递给构造方法,借此特性可以给成员变量赋
  • 注意事项:构造方法不要忘记self关键字;在方法内使用成员变量需要使用self。

你可能感兴趣的:(python,python,开发语言,学习)