Python语言设计之初就是一门面向对象的编程语言。
class tortoise:
bodycolirf = "grenn"
footnum = 4
weight = 10
def crawl(self):
print("pa")
def eat(self):
print("eat")
def protect(self):
print("protect")
8.1定义类类:可以理解成为一个模板,可以创建无数个实例
对象(实例):类不能直接使用,由类创建的对象才可以使用。图纸和汽车的关系
属性:类中的所有变量称为属性
方法:类中所有函数称为方法。和函数不同的是,类的方法至少要含有一个self参数。类的方法不能单独使用,只能和类的实例一起使用
class直接创建
class Demo:
add = "nxl"
def say(self,content):
print(cotent)
-
add就是类属性
-
say就是类方法
say更具体的说可以称为是实例方法。Python还可以定义类方法和静态方法。后面会解释区别。
-
根据定义属性位置的不同,在类方法定义之外的变量称为类属性(add),定义在类方法中的属性称为实例属性。后面会解释区别。
在创建类的时候,可以手动添加一个__init__()方法,这是一个特殊的类实例方法,称为构造方法或者构造函数。
__init__()方法可以包含很对参数,但是必须包含一个self参数,且必须作为第一个参数。也就是说类的构造方法至少要一个self参数。
class FirstClass:
def __init__(self):
print("调用构造方法")
add = "zyh"
def say(self, content):
print(content)
即使用户不手动添加任何类构造方法,Python也会自动添加一个仅包含self参数的类构造方法
仅包含self参数的构造方法,又称为类的默认构造方法
class TheFirstClass:
"""123w"""
def __init__(self, name, age):
print(name, "的年龄是", age, sep="")
add = "nxl"
def say(self, content):
print(content)
zhangsan = TheFirstClass('nxl', 22)
注意由于创建对象时会调用类的构造方法,如果构造函数有多个参数的时候,需要手动传递参数,传递方式就如上段代码所示,具体后面会解释。
同时也可以看到,self参数不需要手动传递,有关self的具体使用方法也会在后面解释。
8.3 类对象的创建和使用穿件类对象的过程,称为类的实例化。
类的实例化
对已定义好的类进行实例化,语法格式为:
类名(参数)
定义类的时候,如果没有手动添加__init()构造方法,又或者添加的构造方法仅有一个self参数,那么创建类对象时的参数就可以省略。
下面创建了名为Demo的类,并进行实例化。
class Demo:
# 定义了类变量(类属性)
name = "nxl"
age = "22"
def __init__(self, name, age):
# 定义两个实例变量
self.name = name
self.age = age
print(name, age)
# 定义一个say实例方法
def say(self, content):
print(content)
zhangsan = Demo("zyh", "22")
上段程序中构造方法除self参数外,还包含了两个参数,并且没有设置默认参数,所以在实例化对象的时候,需要传入相应的值。
类对象的使用
定义的类只有进行实例化之后才可以进行以下操作:
- 访问或者修改类对象具有的实例变量,甚至可以增删;
- 调用类对象的方法,包括调用现有的,以及给类对象动态添加方法



