python的类与对象

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

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

其中self是一个指向实例自身的引用,用来访问该类的变量。

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 元

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值