注:文章内容有转载部分,侵权删
定义语法:
class ClassName:
'''Description'''
<statement-1>
. . .
<statement-N>
在类内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。
举例:
class people:
#定义基本属性
name = ''
age = 0
#定义私有属性,私有属性在类外部无法直接进行访问
__weight = 0
#定义构造方法
def __init__(self,n,a,w):
self.name = n
self.age = a
self.__weight = w
def speak(self):
print("%s 说: 我 %d 岁。" %(self.name,self.age))
# 实例化类
p = people('runoob',10,30)
p.speak()
类对象:
类对象支持两种操作,属性引用
和实例化
。
类对象创建后,类命名空间中所有的命名(变量、函数)都是有效属性名。
class devops():
# 定义一个简单的类
ops = ['Citizen_Wang', 'Bob_Zhou']
dev = ['Jerry_Xue', 'Bagwell_Yan']
def hello(self):
print('Hello world')
# 实例化 类
a = devops()
# 访问类的属性 ops,dev
print(a.ops)
print(a.dev)
# 访问类的方法 hello 函数
a.hello()
结果:
['Citizen_Wang', 'Bob_Zhou']
['Jerry_Xue', 'Bagwell_Yan']
Hello world
对属性的更改:
class devops():
# 定义一个简单的类
ops = ['Citizen_Wang', 'Bob_Zhou']
dev = ['Jerry_Xue', 'Bagwell_Yan']
def hello(self):
print('Hello world')
# 实例化 类
a = devops()
# 访问类的属性 ops,dev
print(a.ops)
a.ops = 'No one has left'
print(a.ops)
另外,Python中是通过在一个变量或者函数之前加上下划线来表示私有变量的
例如:
class Files: # 定义文件类 def __init__(self): self.__filename = [] # 变量名之前加两个下滑线表示私有变量 self.__filecontent = [] # 两个列表用来存文件名及内容 self.__number = 0 # 记录文件数 def add_name(self, fn): self.__filename.append(fn) def add_content(self, fc): self.__filecontent.append(fc) def add_number(self, num): self.__number = num def get_number(self): return self.__number
继承:
class Person(object): # 定义一个父类
def talk(self): # 父类中的方法
print("person is talking....")
class Chinese(Person): # 定义一个子类, 继承Person类
def walk(self): # 在子类中定义其自身的方法
print('is walking...')
c = Chinese()
c.talk() # 调用继承的Person类的方法
c.walk() # 调用本身的方法
# 输出
person is talking....
is walking...