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

121 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的13天,点击查看活动详情

👨‍🎓作者:Java学术趴

🏦仓库:GithubGitee

✏️博客:CSDN掘金InfoQ云+社区

💌公众号:Java学术趴

🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。

🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号Java学术趴联系小编。

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

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

11.2.4 属性

  • 属性就是类里面定义的变量。定义在类里面、方法外面的属性称为类属性。定义在方法里面使用 self引用的属性称之为实例属性。

# 类的全部组成
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 在类的实例对象中给类添加属性


# 类的全部组成
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'

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


# 类的全部组成
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,喜欢的食物是:骨头