class

Posted 安慧桥没有你

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了class相关的知识,希望对你有一定的参考价值。

CLASS
一个类是对一类拥有相同属性的对象的抽象
类的特性
封装:
防止数据被随意修改,
使外部程序不需要关注对象内部的构造,只需要通过对象对外提供的接口进行直接访问即可
继承:
通过父类-子类的方式以最小代码量的方式实现,不通角色的共同点和不同点
多态:
一个接口,多种实现

实例
class Dog(object):
aaa = ‘22‘
def __init__(self, name):
self.Name = name
def sayhi(self):
print("I am dog: %s" % self.Name)
def __del__(self):
print("deleted")

d1 = Dog("andy")

self就是d1本身
__init__: 构造函数
sayhi(): 方法, 动态属性
self.Name: 成员属性,只属于一个实例
self.__xxx: 私有属性
aaa: 公有属性
强制访问私有属性: d1._Dog__xxx
__del__(self),析构函数,可自己定义,系统也会默认自带

继承:
class Dog(object):
def __init__(self, name, age, gender):
self.Name = name
self.Age = age
self.Gender = gender
self.__xx = ‘default‘

def sayhi(self):
print("I am a dog: %s" % self.Name)

def __del__(self):
print("deleted")


class persion(Dog):
def __init__(self, name, age, gender): # 先继承,再重构
Dog.__init__(self, name, age, gender)
print(self.Name, self.Age)

super(persion, self).sayhi() # 新式类用法
def sayhi(self):
Dog.sayhi(self)
print("I am a persion: %s" % self.Name)


c = persion("andy", "45", "male")



#打印实例所有属性
print(c.__dict__)

# 新式类写法
class A(object):
super(curren_class, self).function()
# 经典类写法
class B:
ParentClass.__init__


c = persion("andy", "45", "male")
c.sayhi()

以上是关于class的主要内容,如果未能解决你的问题,请参考以下文章

相互递归的类

Hibernate简单增删改查

Hibernate简单增删改查

如何访问对象的私有成员?

调配一个没有实例的类

61 dfa 实现敏感词过滤