提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
python是面向对象的语言,在python中几乎任何东西都是对象,是所对应的类的实例,拥有方法和属性。比如在python中定义一个变量并输出它的类型:
a = 10
print(type(a))
b = 5.66
print(type(b))
输出结果如下
<class 'int'>
<class 'float'>
这说明a和b都是对应的类的对象
定义一个类
总的来说,一个类由类名和类体构成,类体中有方法和数据两部分。方法即函数成员,数据即属性。数据又分为类属性和函数属性。在具体认识这些组成部分之前,先学习一个特殊的方法:__init__()方法。
1.__init__()
__init__()方法是每创建一个对象都会自动调用的类方法,使用该方法可以给类的属性初始化
class fruit:#类名
def __init__(self,name):
self.name = name#函数属性
apple = fruit("apple")
print(apple.name)
——————————输出——————————
apple
2.类属性和函数属性
类属性定义在类中,函数外,所有对象公用该属性。
公用的意思是,如果有对象修改了该属性,别的对象再引用,该属性值为修改后的。例子如代码:
class fruit:#类名
taste = "好吃"
color = "好看"
smell = "好闻" #类属性
def __init__(self,name):
self.name = name
print("我是一个"+self.name)
print("我"+self.taste)
print("我"+fruit.color+"\n")
def function(self):
fruit.taste = "不好吃"
apple = fruit("apple")#创建apple对象
apple.function()#通过函数调用修改类属性的值
pear = fruit("pear")#创建pear对象
fruit.taste = "好吃"
fruit.color = "不好看"#在类外修改类属性的值,用类名引用
peach = fruit("peach")
——————————输出——————————
我是一个apple
我好吃
我好看
我是一个pear
我不好吃
我好看
我是一个peach
我好吃
我不好看
而实例属性定义在类的方法中,每个对象的实例属性值是独立的。修改一个对象的实例属性值,另外一个对象的实例属性值不变。实例属性只能用对象名访问(很容易理解,实例属性每个对象一个,用类名引用并改变算咋回事?
class fruit:#类名
taste = "好吃"
color = "好看"
smell = "好闻"#类属性
def __init__(self,name):
self.name = name
self.price = 3#函数属性
print("我是一个"+self.name)
print("我"+self.taste)
print("我"+fruit.color+"\n")
def function(self):
fruit.taste = "不好吃"
def function2(self):
print(self.name+"的价格是每公斤",self.price,"元")
apple = fruit("apple")#创建apple对象
pear = fruit("pear")
apple.price = 100#通过实例名修改实例属性
apple.function2()
pear.function2()#不影响别的实例的实例属性
——————————输出——————————
我是一个apple
我好吃
我好看
我是一个pear
我好吃
我好看
apple的价格是每公斤 100 元
pear的价格是每公斤 3 元