class 类名称:
类的属性
创建类对象的语法
那么,什么是类的行为(方法) 呢?
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
可以看出,类中:
其中:
在类中定义成员方法和定义函数基本一致,但仍有细微区别:
def 方法名(self,形参1,......,形参N):
方法体
可以看到,在方法定义的参数列表中,有一个self关键字:
self关键字是成员方法定义的时候必须填写
。
在方法内部,想要访问类的成员变量,必须使用self
。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()
Python类可以使用: __init__()
方法,称之为构造方法。可以实现:
__init__()
方法使用# 定义一个名为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,它将打印出姓名和年龄。
正常情况下定义对象的成员属性,创建对象给成员属性赋值代码如下:
# 定义一个名为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个下划线符号