一、类命名空间与对象、实例的命名空间
常见一个类就会创建一个类的名称空间,用来储存类中定义的所有名字,这些名字成为类的属性
而类有两种属性:静态属性和动态属性
- 静态属性就是直接在类中定义的变量
- 动态属性就是定义在类中的方法
创建一个对象/实例就会创建一个对象/实例的名称空间,存放对象/实例的名字,称为对象/实例的属性
面相对象的组合用法:
组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合
class Weapon: def prick(self, obj): # 这是该装备的主动技能,扎死对方 obj.life_value -= 500 # 假设攻击力是500 class Person: # 定义一个人类 role = 'person' # 人的角色属性都是人 def __init__(self, name): self.name = name # 每一个角色都有自己的昵称; self.weapon = Weapon() # 给角色绑定一个武器; egg = Person('egon') egg.weapon.prick()
from math import pi class Circular: def __init__(self,radius): self.radius=radius def area(self): return self.radius **2 * pi def perimeter(self): return 2 * self.radius * pi circu=Circular(10) print(circu.area()) print(circu.perimeter())
class 正方形: def __init__(self,length_of_side): self.length_of_side = length_of_side def square(self): '面积' return self.length_of_side * self.length_of_side def perimeter(self): '周长' return self.length_of_side * 4 正方形2 = 正方形(2) print(正方形2.square()) print(正方形2.perimeter())