189 8069 5689

python类函数实例化的简单介绍

python程序中怎样区分类的实例化和函数调用?

如果单纯从命 名看:

创新互联专注于企业成都全网营销推广、网站重做改版、元江县网站定制设计、自适应品牌网站建设、H5建站成都做商城网站、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为元江县等各大城市提供网站开发制作服务。

1、类使是用的大驼峰,所以类是这样的:Document()

2、函数名:全部小写

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#类变量依然存在

在调用一些Python里的函数的时候 为什么有些函数需要实例化有些不需要?

如果一个方法是静态方法或类方法,那么,可以直接调用。

如果一个方法不是静态的,那么,它会需要self来访问实例中的某些属性,那么就只能在实例上调用。

你给出的代码中,tensor_trans = transforms.ToTensor()这一句,实际上只是简化引用,并没有实例化transforms。

作为示例:

class MyUtil(object):

....@staticmethod

....def fn1():

........return 'a'

....def fn2(self):

........return 'b'

对方法fn1,我们可以直接调用:

x = MyUtil.fn1()

但对于fn2,则只能实例化后调用:

util=MyUtil()

x = util.fn2()

当然,对于fn1,也可以在实例上调用:

util=MyUtil()

x = util.fn1()


当前标题:python类函数实例化的简单介绍
文章位置:http://cdxtjz.cn/article/doohide.html

其他资讯