# coding=utf-8
__author__ = "hq"
class HqFirstPythopnClass: # 定义一个类,类后面要加:
"My CLass help" # 类说明信息
#构造函数
def __init__(self, x, y=0):
self.x = x
self.y = y
def info(self):
print('我定义的无参类,但要求是第一个参数必须是self且不能省略')
def add(self, x, y):
return x + y
def addd(self):
return self.x + self.y
def printValue(self):
print('x y的值是:(%d,%d)' % (self.x, self.y))
@staticmethod
def static_method():
print('调用静态方法了')
@classmethod
def class_method(cls):
print('调用了类方法了')
myClass = HqFirstPythopnClass(2, 3) # 实例化
print('输出类说明:')
print(myClass.__doc__)
print('显示类帮助信息:')
help(myClass)
print('=========类属性和方法=============')
myClass.info()
print('类中定义的方法,相加的值是:', myClass.add(1, 2))
print('构造函数中的值,调用相加和:', myClass.addd())
myClass = HqFirstPythopnClass(2)
print('构造函数中的值,调用相加和:', myClass.addd())
myClass.printValue()
myClass = HqFirstPythopnClass(2, 5)
myClass.printValue()
print('静态方法和类方法不可以调用类的如何实例,因为,类可以在没初始化的时候调用他们')
myClass.static_method()
myClass.class_method()
HqFirstPythopnClass.static_method()
HqFirstPythopnClass.class_method()
运行结果:
C:\Users\dell\AppData\Local\Programs\Python\Python35\python.exe O:/Python/book6_2.py
输出类说明:
My CLass help
显示类帮助信息:
Help on HqFirstPythopnClass in module main object:
class HqFirstPythopnClass(builtins.object)
| My CLass help
|
| Methods defined here:
|
| init(self, x, y=0)
| Initialize self. See help(type(self)) for accurate signature.
|
| add(self, x, y)
|
| addd(self)
|
| info(self)
|
| printValue(self)
Class methods defined here: |
class_method() from builtins.type |
Static methods defined here: |
static_method() |
Data descriptors defined here: |
dict |
dictionary for instance variables (if defined) |
weakref |
list of weak references to the object (if defined) |
=========类属性和方法=============
我定义的无参类,但要求是第一个参数必须是self且不能省略
类中定义的方法,相加的值是: 3
构造函数中的值,调用相加和: 5
构造函数中的值,调用相加和: 2
x y的值是:(2,0)
x y的值是:(2,5)
静态方法和类方法不可以调用类的如何实例,因为,类可以在没初始化的时候调用他们
调用静态方法了
调用了类方法了
调用静态方法了
调用了类方法了
Process finished with exit code 0
类的继承
# coding=utf-8
__author__ = "hq"
class FatherClass:
def __init__(self, x=0, y=0, color='black'):
self.x = x
self.y = y
self.color = color
def move(self, x, y):
self.x = x
self.y = y
print('爬行')
self.info()
def info(self):
print("当前位置(%d,%d)" % (self.x, self.y))
def canChange(self):
print('父类的描述语')
class AnotherFather:
def jump(self):
print("我会跳哦")
def cz(self):
print('提供给重载的')
class ChildOne(FatherClass, AnotherFather):
def canChange(self):
print('子类1的重写描述语')
def fly(self, x, y):
print('子类会飞')
self.x = x
self.y = y
self.info()
def cz(self, x):
print('重载一个父类的方法,输入值是:', x)
child1 = ChildOne(4, 2);
child1.move(4, 10)
child1.fly(3, 2)
child1.canChange()
child1.jump()
child1.cz(11)
f = FatherClass()
f.move(2, 4)
f.canChange()
结果
C:\Users\dell\AppData\Local\Programs\Python\Python35\python.exe O:/Python/book6_4.py
爬行
当前位置(4,10)
子类会飞
当前位置(3,2)
子类1的重写描述语
我会跳哦
重载一个父类的方法,输入值是: 11
爬行
当前位置(2,4)
父类的描述语
Process finished with exit code 0