欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Python 基础知识]类的定义和使用-3.属性(变量)绑定

最编程 2024-05-26 16:52:41
...

Python作为动态语言,类对象和实例对象都可以在运行时绑定任意属性。因此,类属性的绑定发生在两个地方,类定义时和运行的任意阶段

3.1 类属性绑定

下面程序中介绍了类中和类外的类属性绑定方法,同时类属性也可以被删除

class Dog:
    kind = 'canine' #类中,类属性绑定

Dog.country = 'China'  # 类外,类属性绑定

print(Dog.kind, ' - ', Dog.country)  # 输出: canine  -  China
del Dog.kind #删除类属性
print(Dog.kind, ' - ', Dog.country)  # 类属性被删除,报错!

输出:

canine  -  China
Traceback (most recent call last):
  File "/home/liqiang/workspace/python/python_tutorials/main.py", line 8, in <module>
    print(Dog.kind, ' - ', Dog.country)  # 类属性被删除,报错!
AttributeError: type object 'Dog' has no attribute 'kind'

3.2 实例属性绑定

与类属性绑定相同,实例属性绑定也发生在两个地方:类定义时、运行时任意阶段。

class Dog:
    def __init__(self, name, age):
        self.name = name #类中,实例绑定
        self.age = age

dog = Dog('Lily', 3)
dog.fur_color = 'red'  # 类外,实例属性绑定

print('%s is %s years old, it has %s fur' % (dog.name, dog.age, dog.fur_color))

输出:

Lily is 3 years old, it has red fur

推荐阅读