1. python 类实例化
1、python的类中,以__(两个下划线)开头但不以__结束的就是私有的变量或者函数,私有函数和变量不能在class外调用到。
class test:
def __init__(self, num):
self.__num = num
privateTest = test(100)
privateTest.__num#会报错
当然也有办法调到,只是不建议那样做。
2、第一个class se()中的 变量s,是一个类变量,是class se的变量,类变量可以被类本身访问,如se.s,也可以被各个对象访问,而且由于是存在class里的所以值唯一,有点像C++里的static。
但是如果有某一个对象也创建了一个叫s的变量 覆盖了类变量,那么那个self.s就是对象的属性,而不会调到类变量。
你可以运行试试
# -*- coding: cp936 -*-
class A:
name = []
def __init__(self, name):
self.name.append(name)
def nameMyself(self, name):
self.name = [name]
print 'my name is',self.name, 'and class A1name is :', A.name
def test(self):
print "my name is", self.name
obj = A("num0")
obj1 = A("num1")
print "obj1`name", obj1.name#对象访问类变量name
print "class A`name", A.name#class自己访问类变量name
obj1.test()#此时还是访问的类变量name
obj1.nameMyself('aid')#给自己起个名覆盖类变量的name
obj1.test()#对于obj1来说只能访问自己的name了
print "class A`name", A.name#类变量依然存在
2. python怎么创建类的对象
定义的类只有进行实例化,也就是使用该类创建对象之后,才能得到利用。总的来说,实例化后的类对象可以执行以下操作:
访问或修改类对象具有的实例变量,甚至可以添加新的实例变量或者删除已有的实例变量;
调用类对象的方法,包括调用现有的方法,以及给类对象动态添加方法。
3. python中怎么创建浮点型变量
创建 float 值有两种方式:
1、直接赋予变量浮点值
2、使用构造器float()创建float类型实例
使用第一种方式,如果该数值没有小数,需要添加后缀.0,否则,解释器会认为这是int类型数值,示例如下:
使用第二种方式,如果没有任何输入参数,那么创建float实例值为 0.0
也可以输入单个参数,一个数值或者一个数字字符串,示例如下:
Note:使用float()构造器还可以定义无穷大(Infinity或者inf)和无穷小
4. 如何用Python创建生成xml文档文件的方法
1、内存数据产生
2、产生xml内存对象(也就是DOM树)
3、产生根对象
4、往根对象里加数据
5、把xml内存对象写到文件
下面是一个创建xml文档的简单实例:
importxml.dom.minidom#在内存中创建一个空的文档doc=xml.dom.minidom.Document()
#创建一个根节点Managers对象root=doc.createElement('Managers')
#设置根节点的属性root.setAttribute('company','xx科技')
root.setAttribute('address','科技软件园')
#将根节点添加到文档对象中doc.appendChild(root)
managerList=[{'name':'joy','age':27,'sex':'女'},
{'name':'tom','age':30,'sex':'男'},
{'name':'ruby','age':29,'sex':'女'}
]foriinmanagerList:
nodeManager=doc.createElement('Manager')
nodeName=doc.createElement('name')
#给叶子节点name设置一个文本节点,用于显示文本内容
nodeName.appendChild(doc.createTextNode(str(i['name'])))
nodeAge=doc.createElement("age")
nodeAge.appendChild(doc.createTextNode(str(i["age"])))
nodeSex=doc.createElement("sex")
nodeSex.appendChild(doc.createTextNode(str(i["sex"])))
#将各叶子节点添加到父节点Manager中,
#最后将Manager添加到根节点Managers中
nodeManager.appendChild(nodeName)
nodeManager.appendChild(nodeAge)
nodeManager.appendChild(nodeSex)
root.appendChild(nodeManager)#开始写xml文档fp=open('c:\wcx\Manager.xml','w')
doc.writexml(fp,indent=' ',addindent=' ',newl=' ',encoding="utf-8")
执行结果:
<?xmlversion="1.0"encoding="utf-8"?>
<Managersaddress="科技软件园"company="xx科技">
<Manager>
<name>joy</name>
<age>27</age>
<sex>女</sex>
</Manager>
<Manager>
<name>tom</name>
<age>30</age>
<sex>男</sex>
</Manager>
<Manager>
<name>ruby</name>
<age>29</age>
<sex>女</sex>
</Manager>
</Managers>
6.用Python自带的写xml文档的API去写,比较方便,后期容易维护。如果直接用打开文件的方式,一行一行的去写,比较费时,也难以维护。
5. Python中编写一个类,包含一个变量,一个方法;再编写一个子类,继承前一个类
摘要 使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:class ClassName:
6. 关于python的实例方法问题
题主你好,
python中创建新实例的时候, 如果相应的类中定义了__init__()方法的话, 会自动调用这个方法. 你可能认为名称"init"和"__init__"差不多, 但计算机其实是个很笨的东西, 它会完全按照设计去执行. 也就是说,在设计的时候就已经定死了, 默认情况下, 创建新实例的时候, 会自动调用类中定义的__init__()方法, 只要你的方法名和__init__有一点不一样也不行.
下图是我在官网上找的关于__init__()调用的简单说明:
高亮部分说的大概意思就是上面讲的,如果相应类中定义了__init__()方法,则在创建该类实例的时候会自动调用里面定义的__init__()方法.
-----
希望可以帮到题主, 欢迎追问.
7. python定义一个矩形类并生成类实例对象:属性:长、宽 方法:输入长、宽; 输出长和宽;获得面积
classRetangle:
width=0
height=0
def__init__(self,width=0,height=0):
self.width=width
self.height=height
definput(self):
self.width=input('width:')
self.height=input('height:')
defarea(self):
returnself.width*self.height
rc=Retangle()
rc.input()
print('width=',rc.width)
print('height=',rc.height)
print('area=',rc.area())
8. Python如果一个父类已经实例化了,现在想新建一个子类,给父类的这一个实例添加两个属性,如何实现
class People(object):
def __init__(self, name, age):
self.name = name
self.age = age
class worker(People):
def __init__(self,name,age,salary):
super(worker,self).__init__(name,age)
self.salary = salary
tom = People("Tom", 22)
print type(tom).__name__
#not a safe way, but no new object
tom.__class__=worker
print type(tom).__name__
tom.salary = 250
print tom.salary
#safe way, but create a new object
workerTom = worker("Tom", 22, 200)
tom.__dict__ = workerTom.__dict__
print type(tom).__name__
print tom.salary