导航:首页 > 编程语言 > python对象成员变量

python对象成员变量

发布时间:2022-12-13 09:46:48

python怎样命名变量的

模块名:
小写字母,单词之间用_分割
ad_stats.py

包名:
和模块名一样

类名:
单词首字母大写
AdStats
ConfigUtil

全局变量名(类变量,在java中相当于static变量):
大写字母,单词之间用_分割
NUMBER
COLOR_WRITE

普通变量:
小写字母,单词之间用_分割
this_is_a_var

实例变量:
以_开头,其他和普通变量一样
_price
_instance_var

私有实例变量(外部访问会报错):
以__开头(2个下划线),其他和普通变量一样
__private_var

专有变量:
__开头,__结尾,一般为python的自有变量,不要以这种方式命名
__doc__
__class__

普通函数:
和普通变量一样:
get_name()
count_number()
ad_stat()

私有函数(外部访问会报错):
以__开头(2个下划线),其他和普通函数一样
__get_name()
————————————————————————————————————————————————————————————————————
文件名
全小写,可使用下划线

应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。
模块
与包的规范同。如mymole。

总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线。

函数&方法
函数名应该为小写,可以用下划线风格单词以增加可读性。如:myfunction,my_example_function。
*注意*:混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容。
函数和方法的参数
总使用“self”作为实例方法的第一个参数。总使用“cls”作为类方法的第一个参数。
如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线好于使用缩写或奇怪的拼写。
全局变量
对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。
*注意*:应避免使用全局变量
变量
变量名全部小写,由下划线连接各个单词。如color = WHITE,this_is_a_variable = 1
*注意*:
1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。
2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。
3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。
常量
常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。
异常
以“Error”作为后缀。
缩写
命名应当尽量使用全拼写的单词,缩写的情况有如下两种:
1.常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。
2.命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。
例如:
function 缩写为 fn
text 缩写为 txt
object 缩写为 obj
count 缩写为 cnt
number 缩写为 num,等。
前导后缀下划线
一个前导下划线:表示非公有。
一个后缀下划线:避免关键字冲突。
两个前导下划线:当命名一个类属性引起名称冲突时使用。
两个前导和后缀下划线:“魔”(有特殊用途)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。
*注意*:关于下划线的使用存在一些争议。
Python 用下划线作为变量前缀和后缀指定特殊变量。

_xxx 不能用'from mole import *'导入
__xxx__ 系统定义名字
__xxx 类中的私有变量名

核心风格:避免用下划线作为变量名的开始。

因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有的”,在模块或类外不可以使用。当变量是私有的时候,用_xxx 来表示变量是很好的习惯。因为变量名__xxx__对Python 来说刑厥夂澹杂谄胀ǖ谋淞坑Φ北苊庹庵置绺瘛?br>
"单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;
"双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。
特定命名方式
主要是指 __xxx__ 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如
class Base(object):
def __init__(self, id, parent = None):
self.__id__ = id
self.__parent__ = parent
def __message__(self, msgid):
# …略
其中 __id__、__parent__ 和 __message__ 都采用了系统保留字命名法。

❷ python非成员变量不报错 BeautifulSoup的对象soup中没有成员变量b,为什么不报错,而是能成功执行

意思是:
此处的top_div是个空值,即在Python中是None,所以是NodeType
对于一个None的值,当然没有对应的findAll的方法了
(只有正常的,非空的BeautifulSoup类型的变量才有此方法)

所以推出:
soup.find('div', {'id':'a'})
获得值top_div是空的

原因:
要么是你处理的html源码,此处即parser,得到的不是你真正想要的
要么是,你此处写的规则,即'div', {'id':'a'},有问题
(后来去该网站看了看其源码,根本就不存在
类似于

<div id="a">
的源码,所以很明显,你此处的规则是写错了)

才导致搜索出来的值,是空的。

另外,
针对于你说的:
top_div = soup.find('div', {'id':'a'})
“#注意:返回的是list对象”
我表示很怀疑。
因为本身BeautifulSoup类型变量去find的话,只会返回一个BeautifulSoup的对象
而不会是list。
这点是人家的find函数决定的,决定了返回值的类型不是list而是BeautifulSoup类型的变量。
你为何会说成list???

如果对于BeautifulSoup不熟悉,那可以参考我的教程:
搜:

【教程】Python中第三方的用于解析HTML的库:BeautifulSoup

即可找到。

❸ python实例成员实例变量

1、语法:

定义:对象.变量名

调用:对象.变量名

2、说明:

(1)首次通过对象赋值为创建,再次赋值为修改

x01=wife()

wife.name="张三" 此时为创建

wife.name="李四" 此时为修改

(2)通过在构造函数__init__中创建

wife("张三",24)

print(w01.name)

(3)、每个对象存储一份,通过对象地址访问。

3、作用:描述所有对象的共有数据。

实例方法:

1、语法

定义:def方法名称(self,参数列表):

方法体

调用:对象地址.实例名称(参数)

作用:所有对象共享方法。

对象是指构造函数,方法是指形为函数。

'''

class Studons:

def __init__(self,name,xibie,nianling,fenshu):

self.name=name

self.xibie=xibie

self.nianling=nianling

self.fenshu=fenshu

def dayin(self):

print("姓名:%s,性别:%s,年龄:%d,分数:%d"%(self.name,self.xibie,self.nianling,self.fenshu))

#定义函数根据姓名查找每个人的信息。

list01=[Studons("张无忌","女",2,98),

Studons("张老六","男",61,95),

Studons("三丰","男",31,95),

Studons("小丽丽","女",21,93),

]

def cha_name(name):

for item in list01:

if name==item.name:

# print(item.name,item.nianling)

item.dayin()

cha_name("小丽丽")

#2、

def fund_xus(names):

for itme in list01:

if itme.name==names:

return itme

print(fund_xus("小丽丽").name)

#查找所有女同学

def fund_nv(age):

list02 = []

for itme in list01:

if itme.xibie==age:

list02.append(itme)

return list02

ae=fund_nv("女")

for ime in ae:

ime.dayin()

#统计30岁以上的人的数量

def count_stud():

coun=0

for itme in list01:

if itme.nianling>=30:

coun+=1

return coun

print(count_stud())

#将所有学生的成绩归0

def list_0():

for itme in list01:

itme.fenshu=0

#获取列表中所有人的名字

def pen_name():

name=[]

for itme in list01:

name.append(itme.name)

return name

print(pen_name())

#查找年龄 最大的学生对象

def max_nl():

maxt=list01[0]

for itme in range(len(list01)):

if maxt.nianling<list01[itme].nianling: span=""> </list01[itme].nianling:>

maxt=list01[itme]

return maxt

max_nl().dayin()

❹ python类里的私有变量如何定义

python没有私有变量,任何定义的变量都是可以直接调用的,但是一般来说,在定义的变量前后加上两个下划线,把这样的变量当成是私有变量,如下代码所示:

classperson:
def__init__(self):
self.__private__=100
p=person()
print('__private__:',p.__private__)
print('p包含的变量:',dir(p))

输出:

__private__:100
p包含的变量:['__class__','__delattr__','__dict__','__dir__','__doc__','__eq__','__format__','__ge__','__getattribute__','__gt__','__hash__','__init__','__le__','__lt__','__mole__','__ne__','__new__','__private__','__rece__','__rece_ex__','__repr__','__setattr__','__sizeof__','__str__','__subclasshook__','__weakref__']

❺ python 为什么要用成员变量

不是python用成员变量,是所有面向对象编程所需要的类里面要有成员变量。
比如一个人有属性性别、年龄等,这些描述这个对象的属性就是类里的成员变量。

❻ python 通过字符串对成员变量赋值

❼ python怎么查看object 里的成员变量

首先通过一个例子来看一下本文中可能用到的对象和相关概念。

  • #coding:utf-8import inspectprint inspect.ismole(inspect) #Trueprint inspect.isfunction(inspect.isfunction) #Trueprint inspect.isbuiltin(sorted) #Trueprint inspect.isroutine(sorted) #True

  • 对于实现了__call__的类实例,这个方法会返回False。如果目的是只要可以直接调用就需要是True的话,不妨使用isinstance(obj, collections.Callable)这种形式。我也不知道为什么Callable会在collections模块中,抱歉!我猜大概是因为collections模块中包含了很多其他的ABC(Abstract Base Class)的缘故吧:)

  • #coding:utf-8import collectionsclass Dog(object): def __call__(self, name):#实现__call__方法就可以直接调用对象了

  • print 'i am a dog named ' , name


  • dog = Dog()

  • dog('DaHuang')print isinstance(dog, collections.Callable) #Trueprint dog.__class__.__bases__

  • 3.2. 获取对象信息

  • getmembers(object[, predicate]):这个方法是dir()的扩展版,它会将dir()找到的名字对应的属性一并返回,形如[(name, value), ...]。另外,predicate是一个方法的引用,如果指定,则应当接受value作为参数并返回一个布尔值,如果为False,相应的属性将不会返回。使用is*作为第二个参数可以过滤出指定类型的属性。

  • getmole(object):还在为第2节中的__mole__属性只返回字符串而遗憾吗?这个方法一定可以满足你,它返回object的定义所在的模块对象。

  • get{file|sourcefile}(object):获取object的定义所在的模块的文件名|源代码文件名(如果没有则返回None)。用于内建的对象(内建模块、类、函数、方法)上时会抛出TypeError异常。

  • get{source|sourcelines}(object):获取object的定义的源代码,以字符串|字符串行表返回。代码无法访问时会抛出IOError异常。只能用于

  • ❽ 初学者怎么学习Python

    Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言等等。

    那Python是一种什么语言?

    首先,我们普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大。

    比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。

    所以Python是一种相当高级的语言。

    你也许会问,代码少还不好?代码少的代价是运行速度慢,C程序运行1秒钟,Java程序可能需要2秒,而Python程序可能就需要10秒。

    那是不是越低级的程序越难学,越高级的程序越简单?表面上来说,是的,但是,在非常高的抽象计算中,高级的Python程序设计也是非常难学的,所以,高级程序语言不等于简单。

    但是,对于初学者和完成普通任务,Python语言是非常简单易用的。连Google都在大规模使用Python,你就不用担心学了会没用。

    用Python可以做什么?可以做日常任务,比如自动备份你的MP3;可以做网站,很多着名的网站包括YouTube就是Python写的;可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。总之就是能干很多很多事啦。

    Python当然也有不能干的事情,比如写操作系统,这个只能用C语言写;写手机应用,只能用Objective-C(针对iPhone)和Java(针对Android);写3D游戏,最好用C或C++。

    如果你是小白用户,满足以下条件:

    会使用电脑,但从来没写过程序;

    还记得初中数学学的方程式和一点点代数知识;

    想从编程小白变成专业的软件架构师;

    每天能抽出一个半小时学习。可以看下面的代码

    learning=input('DoyouwanttolearnPythonnow(YesorNo):')
    a=str(learning)
    ifa=='Yes':
    print('QQ1129834903')
    else:
    print('Thanks!!')

    ❾ Python中类的定义规是什么

    类的概念:

    类 Class: 用来描述具体相同的属性和方法的对象的集合。定义了该集合中每个对象所共有的属性和方法。对象是类的示例。


    类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。


    实例变量:定义在方法中的变量,只作用于当前实例的类。


    数据成员:类变量或者实例变量用于处理类及其实例对象的相关数据。


    方法:类中定义的函数。在类内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。


    构造函数:即__init()__,特殊的方法,在对象创建的时候被自动调用。


    析构函数:即__del()__,特殊的方法,在对象被销毁时被自动调用。


    实例化:创建一个类的实例,类的具体对象。就是将创建的类赋值给另一个变量。理解为赋值即可,a = class(),这个过程,就叫做实例化


    对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。


    继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟”是一个(is-a)”关系(例图,Dog是一个Animal)。


    方法重写:如果从父类继承的方法不能满足子类的需求,可以对其 进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

    ————————————————

    原文链接:https://blog.csdn.net/f156207495/article/details/81166252

    网页链接

    ❿ Python的类中引用成员变量必须加self吗

    Python的类中引用成员变量必须加self
    类(class)初始化之后会得到实例(instance)。 self就是用于代表初始化的到的实例。 明确地写一个self参数,使得类的方法(method)和普通的函数(function)本质上没有差异,所有的输入参数都显示地传递到方法/函数当中。 当然作为类的方法,作用的对.

    self是只有在类中才会有的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。 但self的名称并不是一定的,在python中self不是关键词。在初始化函数中可以把self换成任意名字.

    阅读全文

    与python对象成员变量相关的资料

    热点内容
    汇编程序员待遇 浏览:357
    怎么批量有顺序的命名文件夹 浏览:209
    杭州程序员健身 浏览:17
    dvd光盘存储汉子算法 浏览:758
    苹果邮件无法连接服务器地址 浏览:963
    phpffmpeg转码 浏览:672
    长沙好玩的解压项目 浏览:145
    专属学情分析报告是什么app 浏览:564
    php工程部署 浏览:833
    android全屏透明 浏览:737
    阿里云服务器已开通怎么办 浏览:803
    光遇为什么登录时服务器已满 浏览:302
    PDF分析 浏览:486
    h3c光纤全工半全工设置命令 浏览:143
    公司法pdf下载 浏览:383
    linuxmarkdown 浏览:350
    华为手机怎么多选文件夹 浏览:683
    如何取消命令方块指令 浏览:350
    风翼app为什么进不去了 浏览:779
    im4java压缩图片 浏览:362