1.认识 面向对象编程 【类和对象】
1)6种数据类型都是=对象
2)自定义数据类型=类
类:是对一群具有相同 特征 或 行为 的事物的一个统称。(是抽象的)
3)类和对象的关系
类:是对象的模板/蓝图(宏观)
对象:是类的实例化(具体),每个实例对象都拥有类中的方法,但各种属性可能不相同。
例如:狗狗。
1.类:狗。
2.属性:颜色,大小。(狗狗们不相同)
3.方法:跑,叫。(狗狗们相同)
4.实例对象:泰迪,柯基。
2.创建类
1)类的语法结构
class 类名:
def __init__(self):
pass
def 方法名(self):
pass
#class:关键字。
#类名:首字和方法名,首字母需要大写。
#def:是定义方法。
#init:构造方法,初始化实例对象。
#self:是参数(是类中定义的方法,传入的第一个参数),且调用时不用传递该参数。
#在init方法中,前后各有2个下划线。
例如:定义一个Person类
#1.创建类
class Person
#1.1初始化对象self,调用的时候不用传递该参数。
#init方法,是一个特殊的方法,实例化对象的时候自动调用
def __init__(self,new_name):
self.name=new_name #接收传递的参数
print('I am running')
#1.2walk方法
def walk(self):
print('I am walking')
#2.实例化对象
#2.1实例化一个小明
Xiaoming=Person('小明')
#实例化的小明对象,调用walk方法:用 对象名.方法名 可以调用该对象的方法
Xiaoming.walk()
#通过print方法打印出小明的name属性:用 对象名.属性
print(Xiaoming.name)
#2.2实例化一个小红 #跟小明一样
Xiaohong=Person('小红')
#walk方法
Xiaohong.walk()
#小红姓名
print(Xiaohong.name)
——————————————————————————————————————————
#调用initi方法,会打印出:I am running。
#调用walk方法,会打印出:I am walking。
#调用print方法的name属性,会打印出:小明。
——————————————————————————————————————————
#self:调用的时候不用传递该参数。
#new_name:参数,使用self.name=new_name #接收传递的参数
#小明:是一个参数。
遇到报错不要慌,ndentationError: expected an indented block错误通常是由于Python代码中的缩进不一致或错误引起的。
*Python是一种非常注重缩进的编程语言,错误的缩进会导致语法错误
完整代码:
#类:人
class Person:
#定义init方法(参数):性名
def __init__(self,new_name):
self.name=new_name
print('I am running')
#定义走路方法:走路
def walk(self):
print('I am walking')
#实例化对象:小明
Xiaoming=Person('小明')
#调用walk方法:用 对象名.方法名
Xiaoming.walk()
3.问题合集:
【1】调用是什么意思?
【2】怎么传递参数?
【3】怎么接收传递的参数?
1. 调用是什么意思?
在编程中,“调用”通常指的是一个函数(或方法)被使用的过程。函数是一段封装好的代码,用于完成特定的任务。当程序需要执行某个函数时,就会“调用”它。
举例说明: 假设有一个函数 add(a, b)
,它的作用是将两个数字相加并返回结果。当你在代码中写 add(3, 5)
时,就表示你“调用了”这个函数,程序会执行函数内部的代码,计算出结果并返回。
def add(a, b):
return a + b
result = add(3, 5) # 调用函数
print(result) # 输出 8
在这个例子中,add(3, 5)
就是调用函数的操作。
2. 怎么传递参数?
参数(Parameters)是函数接收的输入值,用于在函数内部执行特定的操作。传递参数就是将具体的值传递给函数。
传递参数的方式:
-
位置参数(Positional Arguments):按照函数定义时参数的顺序传递值。
def greet(name, age): print(f"Hello, {name}! You are {age} years old.") greet("Alice", 25) # 按顺序传递参数
-
关键字参数(Keyword Arguments):通过参数名传递值,不依赖于顺序。
greet(age=25, name="Alice") # 使用关键字传递参数
-
默认参数(Default Arguments):函数定义时为参数设置默认值,调用时可以不传递该参数。
def greet(name, age=18): print(f"Hello, {name}! You are {age} years old.") greet("Bob") # 不传递 age 参数,使用默认值 18
3. 怎么接收传递的参数?
在函数定义时,通过在函数名后面的括号中声明参数来接收传递的值。这些参数在函数内部可以被当作变量使用。
举例说明:
def multiply(x, y): # 定义函数,接收两个参数 x 和 y
result = x * y # 使用参数 x 和 y 进行计算
return result # 返回计算结果
# 调用函数并传递参数
product = multiply(4, 5) # 将 4 和 5 传递给函数
print(product) # 输出 20
在上面的例子中,multiply(x, y)
函数通过参数 x
和 y
接收调用时传递的值(这里是 4 和 5),然后在函数内部使用这些值进行计算。