在python中使用类中的
我有一个classex.py文件:在python中使用类中的,python,python-2.7,Python,Python 2.7,我有一个classex.py文件: class Class1: def method1(): print 'stack1' def method2(): print 'over1' def method3(): print 'flow1' class Class2: def method1(): print 'stack2' def method2(): print 'ove
class Class1:
def method1():
print 'stack1'
def method2():
print 'over1'
def method3():
print 'flow1'
class Class2:
def method1():
print 'stack2'
def method2():
print 'over2'
def method3():
print 'flow2'
class Class3:
def method1():
print 'stack3'
def method2():
print 'over3'
def method3():
print 'flow3'
我想要访问classex
file类,因此我将导入该文件,以了解如何在各种类中访问
例如:
import classex
print Class1.method1()
print Class2.method2()
我的预期输出是stack1
和over2
class Class1:
def method1(self): # instance is passed implicity as first arg
print 'stack1'
def method2(self):
print 'over1'
def method3(self):
print 'flow1'
class Class2:
def method1(self):
print 'stack2'
def method2(self):
print 'over2'
def method3(self):
print 'flow2'
class Class3:
def method1(self):
print 'stack3'
def method2(self):
print 'over3'
def method3(self):
print 'flow3'
实际上,您并没有导入类本身,只是导入了模块
import classex
要访问这些类,您必须执行以下操作:
>>> myclass = classex.Class1()
>>> myclass2 = classex.Class2()
>>> myclass.method1()
stack1
>>> mycalss2.Class2.method2()
over2
或者直接导入类:
>>> from classex import Class1, Class2
>>> myclass = Class1()
>>> myclass2 = Class2()
>>> myclass.method1()
stack1
>>> myclass2.method2()
over2
或者你可以这样做
class Class1:
@classmethod
def method1(clss):
print 'stack1'
@classmethod
def method2(clss):
print 'over1'
@classmethod
def method3(clss):
print 'flow1'
class Class2:
@classmethod
def method1(clss):
print 'stack2'
@classmethod
def method2(clss):
print 'over2'
@classmethod
def method3(clss):
print 'flow2'
class Class3:
@classmethod
def method1(clss):
print 'stack3'
@classmethod
def method2(clss):
print 'over3'
@classmethod
def method3(clss):
print 'flow3'
然后
import classex
classex.Class1.method2()
等等
但你所做的并没有让我觉得你对OOP原理理解得那么好,或者你是从另一种OOP语言中学习的,这种语言有一些一流的方法,你希望得到同样的结果。
OO的Python实现与Java或C#等稍有不同,因此请务必阅读一些Python中方法的定义。您需要阅读Python教程。因为这不是Python 3,您应该使用
类SomeClass(object):
来使用新样式的classestrue,但因为它实际上不是一个关键字,只是一个名称,这个问题一点都不重要。奇怪的是,他们没有把“self”和“cls”作为关键词。我不确定我是否会把PEP8描述为“一点都不重要”。。。这不是一个要求,但遵循它确实是一个好主意。
import classex
classex.Class1.method2()