类、继承、类属性、实例属性

1、定义
class Animal():
def __init__(self, __color, footNum, isCanSpeak):
"""
动物属性
:param color:
:param footNum:
:param isCanSpeak:
"""
self.__color = __color
self.footNum = footNum
self.isCanSpeak = isCanSpeak
self.isPersonFriend = True
 
2、继承
普通继承:
class Dog(Animal):
def __init__(self, __color, footNum, isCanSpeak, eyeNum):
super().__init__(__color, footNum, isCanSpeak)
 
接口继承(子类必须包含父类所有的实现):
class 接口类名(metaclass=abc.ABCMeta):
isTest = True
def __init__(self, school, money):
self.school = school
self.__money = money
 
@abc.abstractmethod
def hitStudent(self):
pass
 
 
 
3、类的特殊属性
print(Dog.__name__) #Dog 类名
print(Dog.__doc__) #None
print(Dog.__base__) #<class 'animal.Animal'> 第一个父类
print(Dog.__bases__) #(<class 'animal.Animal'>,) 所有父类
print(Dog.__dict__) #{'__module__': '__main__', '__init__': <function Dog.__init__ at 0x000001474D916730>, '__doc__': None}
print(dog.__module__) #__main__ 类定义所在模块
print(dog.__class__) #<class '__main__.Dog'>
print(dog.getColor()) #yellow
print(animal.__dict__["getColor"](dog))#yellow
print(vars(dog)) #{'_Animal__color': 'yellow', 'footNum': 4, 'isCanSpeak': False, 'isPersonFriend': True}
print(dir(dog)) #所有方法:['_Animal__cologetIsCanSpeak', 'isCanSpeak', 'isPersonFriend', 'setColor']
 
补充:
实例能访问类属性(因为实例在类的作用域中),类不能访问实例属性;
实例只有数据属性,没有函数属性;
 
4、类属性
#查看类属性
print(Animal.country)
#修改类属性
Animal.country = "Japan"
#删除类属性
del Animal.country
#增加类属性
Animal.loaction = "Asia"
print(Animal.__dict__)
 
5、实例属性
# 查看实例属性
print(dog.isCanSpeak)
# 增加实例属性
dog.name = "mengmeng"
# 删除实例属性
del dog.name
# 修改实例属性
dog.isCanSpeak = True
 
 
 
 
 
 

转载于:https://www.cnblogs.com/chqworkhome/p/10954777.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值