回到首页☞
定位:
暂时是了解和读写无障碍吧,毕竟还是Java开发人员。
面向对象编程 - 类–实例
class <类名>:
<语句>
比较Java 来学习吧,差不多,但是会别扭
类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性。如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象
类的私有属性:
__private_attrs 两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs
类的方法
在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数
私有的类方法
__private_method 两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用slef.__private_methods
类的专有方法:
init 构造函数,在生成对象时调用
del 析构函数,释放对象时使用
repr 打印,转换
__setitem__按照索引赋值
__getitem__按照索引获取值
__len__获得长度
__cmp__比较运算
__call__函数调用
__add__加运算
__sub__减运算
__mul__乘运算
__div__除运算
__mod__求余运算
__pow__称方
#!/usr/bin/env
# encoding=utf-8
"""
-- 本章开始class的学习
-- 仿照Java 了解 python的面向对象
"""
class hero:
# 定义基本属性
name = ''
Mp = 100
Hp = 200
ATK = 100
Lv = 1
# 定义私有属性,私有属性在类外部无法直接进行访问
__Max__ = 18
# 定义构造方法
def __init__(self, n, m, h):
self.name = n
self.Mp = m
self.Hp = h
def speak(self):
print("%s is speaking: 德玛西亚" % (self.name))
def kill_soldier(self):
print("%s 当前级别 %s 杀死一个士兵" % (self.name, self.Lv))
self.exe = self.exe + (10 + self.Lv / 18)
if self.exe > self.Lv * 200 + 100:
if self.Lv < 18:
self.Lv += 1
self 这是一个核心关键字,实例本身
import Hero
if __name__ == '__main__':
hero= Hero.Hero("诺克萨斯",100,100)
hero.speak()
# 直接赋值
#hero.Lv = 10
#hero.speak()
for value in range(1,1000):
hero.kill_soldier()
hero.speak()
很快就杀到 18级了
class person:
name = ''
age = 10
__birthday__ = '2020-06-06'
def __init__(self, n, a):
self.name = n
self.age = a
def sayHello(self):
print("大家好,我叫%s,今天%s岁了。" % (self.name, self.age))
class student(person):
class_name = ''
def __init__(self, n, a, cn):
super().__init__(n, a)
self.class_name = cn
def sayHello(self):
print("大家好,我是%s叫%s,今天%s岁了。" % (self.class_name, self.name, self.age))
#!/usr/bin/env
# encoding=utf-8
'''
- 这个py 才是测试唯一入口
- 我的调试专用demo
- create_date:2020-06-01
'''
from ClassTest import person
from ClassTest import student
if __name__ == '__main__':
p = person("张三", 20)
p.sayHello()
s = student("张三", 20, "召唤师峡谷")
s.sayHello()
out:
大家好,我叫张三,今天20岁了。
大家好,我是来自召唤师峡谷班的学生,叫张三,今天20岁了。
上面实例有如下点:
from collections import OrderedDict
if __name__ == '__main__':
favorite_hero = OrderedDict()
favorite_hero['J'] = 'jack'
favorite_hero['T'] = 'tom'
favorite_hero['L'] = 'Lucy'
print(favorite_hero)
for name,value in favorite_hero.items():
print(("%s = %s")%(name,value))
回到首页☞