本文目录一览:
- python怎么用class定义的类
- python里面怎么调用class
- 对python 中class与变量的使用方法详解
- Python中class和def的理解
- 怎样使用Python 的“CLASS”?
- python 类里面的class是什么意思啊?求
python怎么用class定义的类
这里有个二叉树的例子
class TreeNode(object):
def __init__(self, data=0, left=0, right=0):
self.data = data
self.left = left
self.right = right
class BTree(object):
"""docstring for BTree"""
def __init__(self, root=0):
self.root = root
def is_empty(self):
if self.root is 0:
return True
else:
return False
def preOrder(self, treenode):
if treenode is 0:
return
print(treenode.data, end=',')
self.preOrder(treenode.left)
self.preOrder(treenode.right)
def inOrder(self, treenode):
if treenode is 0:
return
self.inOrder(treenode.left)
print(treenode.data, end=',')
self.inOrder(treenode.right)
def postOrder(self, treenode):
if treenode is 0:
return
self.postOrder(treenode.left)
self.postOrder(treenode.right)
print(treenode.data, end=',')
def count_BiTNode(self, treenode):
if treenode is None:
return 0
else:
return (1 + self.count_BiTNode(treenode.left) + self.count_BiTNode(treenode.right))
n1 = TreeNode(data=1)
n2 = TreeNode(2, left=n1, right=0)
n3 = TreeNode(3)
n4 = TreeNode(4)
n5 = TreeNode(5, n3, n4)
n6 = TreeNode(6, n2, n5)
n7 = TreeNode(7, n6, 0)
n8 = TreeNode(data=8)
root = TreeNode('root', n7, n8)
bt = BTree(root)
print("先序遍历:")
print(bt.preOrder(bt.root))
print("中序遍历:")
print(bt.inOrder(bt.root))
print("后序遍历:")
print(bt.postOrder(bt.root))
print(bt.count_BiTNode(bt.root))
python里面怎么调用class
以下代码调试通过:
class LuciaClass: # 定义类
def luciaprint(self, text): # 类里面的方法
print('\n', text) # 方法就是输出 text
x = LuciaClass() # 方法的实例 x
x.luciaprint('today is a bad day ~~~') # 实例调用类方法
运行效果:
对python 中class与变量的使用方法详解
python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键。 枚举了各种情况,没有办法全部枚举,但大部分情况应该都已经包含了。
- 类变量:能够通过类名或者object的self来访问到,在类的内部和外部均可达,比如
class_var_1
- 对象变量:可以通过对象的self来使用的变量,通过constructor一路走向去的的self初次被赋值的变量都会成为对象变量,比如
object_var_1
,object_var_2
,object_var_3
,object_var_4
- 内部变量:可以在函数中定义,并加上self前缀,在初次调用过定义的函数后,就可以在后面的对象的函数中被使用,比如
internal_var_1
- 局部变量:在函数内部定义,并使用的变量,在使用完之后就会被回收对类及object不可见
- 全局变量:定义在类或者函数外部,作用域在变量被定义之后的任意代码段,比如:
global_var_1
Python中class和def的理解
class
: 是一个面向对象的类,用来描述具有相同的属性和方法的对象的集合,类可以起到模版的作用, 所以在创建实例的时候,可以将我们认为必要的属性填写进去,方法__init__
第一个参数是self
,在方法内部
self
表示创建实例本身 ,所以就可以把各种属性绑定到self
参数实例化后,类下的所有方法,都可以调用实例参数,格式,self.参数名
,实例如下
调用: 在类中定义函数,类和函数都可作为一个模块保存。要调用类或函数只需要import这个类或函数所在模块名称就可以了。在一个模块当然可以访问另外一个模块的类。
怎样使用Python 的“CLASS”?
class
就是类定义。就是把数据及其上的操作封装的单元。支持面向对象的语言都有这个概念。比如c++,java之类的。下面是我随手敲的例子:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def getX(self):
return self.x
def getY(self):
return self.y
p = Point(1, 2)
p
# __main__.Point instance at 0x97df54c
p.getX()
# 1
p.getY()
# 2
python 类里面的class是什么意思啊?求
python这方面很灵活。其实java也一样允许这样子。你几乎可以在任何情况下做任何事情。
通常class Meta
可以放在外面。不过,这样它就不能直接访问父类的一些属性了。
所以在python里class 如果放在另一个class 里面,通常并不是为了隐藏这个class,并不是让别人看不到它。而因为它需要父类里的一些属性。需要共享。
另外直接在类里定义的一些变量,比如queryset
,也是属于类全局级的。只要引用了这个类,即使没有初始化,这些变量也已经实例化。这个有些象是java里static的全局定义结果。
我们通常用这个方法来在不同的函数变量间共享 一部分数据。同时又不需要初始化一个实例并用指针指向这一部分数据。而是通过类名直接引用。
比如下面的一个用法
class Config:
pass
Config.user_name = "xxx"
Config.password = "yyyy"
这样。只要你在当前模块里,通过Config
就可以引用到user_name
和password
,而不需要global
这个修饰符。