前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >万物皆对象,Python中的类的属性是如何定义的??

万物皆对象,Python中的类的属性是如何定义的??

原创
作者头像
Java学术趴
发布2022-06-07 21:56:17
2.1K0
发布2022-06-07 21:56:17
举报
文章被收录于专栏:Java全栈·Java全栈·

👨‍🎓作者:Java学术趴 🏦仓库:GithubGitee ✏️博客:CSDN掘金InfoQ云+社区 🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。

☠️每日毒鸡汤:这个社会是存在不公平的,不要抱怨,因为没有用!人总是在反省中进步的!

👋大家好!我是你们的老朋友Java学术趴

11.2.4 属性
  • 属性就是类里面定义的变量。定义在类里面、方法外面的属性称为类属性。定义在方法里面使用 self引用的属性称之为实例属性。
代码语言:javascript
复制
# 类的全部组成
class Animal(object):
    """
    定义在类里面、实例方法外面的属性称为类属性
    """
    type = '小猫'
    age = 1
​
    # 在这个函数中声明的属性称为实例使用,这个函数中的属性专门是给类的实例方法使用的
    # 这个函数不用我们手调用,在创建类对象的时候他会自动调用,这个函数用于初始化数据   
    def __init__(self):
        self.food = '猫粮'
​
    def eat(self):
        """
        定义在类的实例方法中的属性称为实例属性
        """
        # 类中的实例方法只能访问到类中的实例属性
        print('小猫咪在吃{}'.format(self.food))
        # print(age),在实例方法中不能直接访问到类属性
        pass
​
    def run(self):
        print('小猫在玩耍')
        pass
​
    pass
​
​
# 定义动物的实例对象
cat = Animal()
# 使用类对象访问其中的类属性
print('有一只小猫叫做{},它已经{}岁了'.format(cat.type, cat.age))
# 有一只小猫叫做小猫,它已经1岁了
​
# 使用类对象访问其中的实例属性
print('猫的食物: {}'.format(cat.food))
# 猫的食物: 猫粮
​
# 使用类对象访问其中的实例方法
cat.eat()
# 小猫咪在吃猫粮
复制代码

注意:在类中的实例方法只能访问实例变量不可以访问类变量,在类对象中可以访问实例属性和类属性

11.2.5 在类的实例对象中给类添加属性
代码语言:javascript
复制
# 类的全部组成
class Animal(object):
    """
    定义在类里面、实例方法外面的属性称为类属性
    """
    type = '小猫'
    age = 1
​
    # 在这个函数中声明的属性称为实例使用,这个函数中的属性专门是给类的实例方法使用的
    def __init__(self):
        self.food = '猫粮'
​
    def eat(self):
        """
        定义在类的实例方法中的属性称为实例属性
        """
        # 类中的实例方法只能访问到类中的实例属性
        print('小猫咪在吃{}'.format(self.food))
        # print(age),在实例方法中不能直接访问到类属性
        pass
​
    def run(self):
        print('小猫在玩耍')
        pass
​
    pass
​
​
# 定义动物的实例对象
cat = Animal()
# 在类的实例对象中添加额外的属性
cat.color = 'white'
复制代码

以上这种方式只能给指定的类对象添加指定的属性,其他的类对象是无法访问的

代码语言:javascript
复制
# 类的全部组成
class Animal(object):
​
    # 给init函数传递指定的参数。这个方法相当于Java的构造方法
    # 这个方法是在类实例化对象的时候自动调用的
    def __init__(self, name, age, type):
        self.name = name
        self.age = age
        self.type = type
​
    def eat(self, food):
        """
        这个函数中的 self 相当于是Animal这个类。存在这个类中的所有属性
        定义在类的实例方法中的属性称为实例属性
        """
        # 类中的实例方法只能访问到类中的实例属性
        print('小猫的年龄是:{},喜欢的食物是:{}'.format(self.age, food))
        # print(age),在实例方法中不能直接访问到类属性
        pass
    pass
​
​
# 定义动物的实例对象
cat = Animal('花花', '3', '虎斑')
print(cat.type)
# 虎斑
​
dog = Animal('牛牛', 4, '狼狗')
print(dog.type)
# 狼狗
​
# 调用类中的实例方法
dog.eat('骨头')
# 小猫的年龄是:4,喜欢的食物是:骨头

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 11.2.4 属性
  • 11.2.5 在类的实例对象中给类添加属性
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档