面向对象
类和对象
1.什么是类
类就是有用想相同属性和相同功能的对象的集合。
class Person:
def __init__(self):
self.name = ''
self.age = ''
self.color = ''
def speak(self):
print('说话')
def think(self):
print('思考')
2.定义类(创建类)
第一个字母大写,单词采用驼峰式命名(单词之间首字母大写)
class Dog:
"""狗类"""
def cry_out(self):
print('汪汪汪')
3.创建对象
对象 = 类名()
dog = Dog()
对象方法
1.对象方法
用对象的形式来调用
class Student:
def study(self):
print('学习')
stu = Student()
stu.study()
构造方法和初始化方法
1.构造方法
函数名和类一样,用来创建对象的方法就叫构造方法。python中在定义类的时候,系统会自动帮我创建好在这个类的构造方法
2.初始方法
__init__
class Person:
def __init__(self, x, y)
print('初始化')
P1 = Person()
print('p1:',p1)
class Dog:
def __init__(self, x, y)
print('狗狗的初始化')
dog1 = Dog(10, 20)
当调用构造方法的船舰对象的时候,提醒哦那个会自动调用这个类的__init__方法
创建对象的时候构造方法需不需要参数需要几个,参数类中的__init__方法除了self以外没有额外的参数
类中的属性
1.属性
1)类属性
直接定义在类中的变量就是类属性
2)对象属性
以’self.属性名=值‘的形式定义在__init__方法。
class Person:
a =10
num = 61
def __init__(self):
self.name = '张三'
self.age = '20'
self.gender = '男'
print(Person.a)
p1 = Person()
print(p1.name, p1.age, p1.gender)
p2 = Person()
p2.name = '小红'
p2.age = '18'
p2.gender = '女'
print(p2.name, p2.age, p2.gender)
2.对象属性默认的值赋值方式
class Dog:
def __init__(self,name, breed='博美', color='白色')
self.name = name
self.age =2
self.breed = breed
self.color = color
def __repr__(self):
return f'name:{self.name},age:{self.age},breed:{self.breed},color:{self.color}'
dog1 = Dog('三黄',color='纯白')
print(dog1)
dog2 = Dog('花花', '泰迪', '黄色')
dog2.age = 3
print(dog2)
方法
1.方法
1)对象方法
直接定义在类中的函数
2)类方法
在类中定义函数前加装饰:@classmethod
class Circle:
pi = 3.1415926
@classmethod
def show_pi(cls):
print('圆周率:',cls)
def create_circles(cls, count):
circles = []
for _ in range(count):
circiles.append(cls(1))
return circles
3)静态方法
在类中定义函数前加装饰:@staticmethod
class Circle:
pi = 3.1415926
@staticmenthod
def message():
print('静态方法', Circle.pi)