color.py
class Color:
def __init__(self, color):
self.color = color
def getcolor(self):
return self.color
Color_extended.py
import Color
class Color:
def getcolor(self):
return self.color + " extended!"
但这不起作用... 我希望如果我在
color_extended.py
中工作,那么当我制作颜色对象并使用
getcolor
函数时,它将用字符串“扩展!”返回对象。到底。此外,它也应该使Init来自Import。
航空python3.1
使用:
import color
class Color(color.Color):
...
如果这是Python 2.x,您也想从
color.Color
衍生出来,以使其成为新风格的类别:
:
object
python3.x.中没有必要
class Color(object):
...
class MyParent:
def sayHi():
print('Mamma says hi')
ChildClass
方法。
动物来扩展(特别是含义,添加新方法,而不是更改现有方法),甚至是内置的类别,即使用一个预处理器,以增加扩展的能力,以超出/之上/高于Python本身的范围,从而转换扩展名在Python真正看到它之前,正常的Python语法。 例如,我这样做是为了扩展Python 2的
sayHi()
类。 str()
是一个特别有趣的目标,因为与引用数据的隐含链接,例如str()
'this'
。 there是一些扩展代码,其中唯一添加的非Python语法是
'that'
位:
extend:testDottedQuad
我可以在馈送给预处理器的代码中写下的:
extend:testDottedQuad
def testDottedQuad(strObject):
if not isinstance(strObject, basestring): return False
listStrings = strObject.split('.')
if len(listStrings) != 4: return False
for strNum in listStrings:
try: val = int(strNum)
except: return False
if val < 0: return False
if val > 255: return False
return True
预处理器可以吃,吐出正常的python而不构成怪物,而python可以做我打算做的事情。 作为C预处理器的JUST添加了C的功能,Python预处理器也可以向Python添加功能。 我的预处理器实现太大了,无法进行堆栈溢出答案,但是对于那些可能有兴趣的人来说,它是github上的Herey。
我像这样使用它。
if '192.168.1.100'.testDottedQuad():
doSomething()
dq = '216.126.621.5'
if not dq.testDottedQuad():
throwWarning();
dqt = ''.join(['127','.','0','.','0','.','1']).testDottedQuad()
if dqt:
print 'well, that was fun'
延伸
class menssagem:
propriedade1 = "Certo!"
propriedade2 = "Erro!"
def metodo1(self)
print(self.propriedade1)
在大多数情况下,我更喜欢导入类并将其分配给单独的变量。在下面的示例中,我将
import menssagem
class menssagem2(menssagem):
menssagem1 = None #não nescessario not necessary
def __init__(self,menssagem):
self.menssagem1 = menssagem
#call first class method
#usando o metodo da menssagem 1
def Menssagem(self):
self.menssagem1.metodo1()
MetaInit
Worker
脚本,我可以通过简单地导入我的工作类来访问插件main.py
MetaInit
from _worker_ import Worker
objWorker = Worker("_config_.json")
objWorker.mIA.dtMetaInit("xoxo")
Metainit/__ Init __.py
from MetaInit import ObjMetaInitApi
class Worker():
def __init__(self,strConfigFile):
self.mIA=ObjMetaInitApi()
后面的输出是class ObjMetaInitApi:
def __init__(self):
print("Finished ObjMetaInitApi init")
def dtMetaInit(self, strV):
print("we have reached dtMetaInit - ",strV)
:
的输出
main.py