Python 第一个名称=字符串 elif len(分割字符串)=2: 名字、姓氏=拆分字符串 elif len(分割字符串)=3: 第一名、中间名、姓氏=拆分字符串 其他:#长度(分割字符串)>3: 第一个\u名称=拆分\u字符串[0] last_name=拆分_字符串[-1] middle_name=”“.join(拆分字符串[1:-2]) self.first\u name=first\u name self.middle\u name=middle\u name self.last\u name=last\u name
表达部分如下:Python 第一个名称=字符串 elif len(分割字符串)=2: 名字、姓氏=拆分字符串 elif len(分割字符串)=3: 第一名、中间名、姓氏=拆分字符串 其他:#长度(分割字符串)>3: 第一个\u名称=拆分\u字符串[0] last_name=拆分_字符串[-1] middle_name=”“.join(拆分字符串[1:-2]) self.first\u name=first\u name self.middle\u name=middle\u name self.last\u name=last\u name,python,sqlalchemy,python-elixir,Python,Sqlalchemy,Python Elixir,表达部分如下: @name.expression def名称(cls): f=cls.first\U名称 m=cls.middle\u名称 l=cls.姓氏 返回f+“”+m+“”+l User.name它类似于@property def name(self):return foo#尝试在不使用此语句的情况下运行查询User.name==User,因为您要求的是property@rob.alarcon: ;) 查询运行得很好,没有多余的行。但是,当我执行查询时,我特别希望使用ORM在查询中创建一
@name.expression
def名称(cls):
f=cls.first\U名称
m=cls.middle\u名称
l=cls.姓氏
返回f+“”+m+“”+l
User.name它类似于@property def name(self):return foo#尝试在不使用此语句的情况下运行查询User.name==User,因为您要求的是property@rob.alarcon: ;) 查询运行得很好,没有多余的行。但是,当我执行查询时,我特别希望使用ORM在查询中创建一个可用的属性。\uuuu set\u name\uuuu
现在是Python 3.6User.name中的一个保留特殊方法名。它类似于@property def name(self):return foo#尝试在不使用此语句User.name==User的情况下运行查询,因为您正在请求property@rob.alarcon: ;) 查询运行得很好,没有多余的行。但是当我进行查询时,我特别希望使用ORM在查询中创建一个可用的属性。\uuu set\u name\uuu
现在是Python 3.6中保留的特殊方法名称。当您从Elixir迁移到Sqlalchemy时,我相信您可能已经混淆了我的问题。我想使用name,就好像它是一个class属性一样。有一个SQA的例子,但我希望它在长生不老药完成。我相信恰当的使用与ColumnProperty有关。然而,文档本身并不适用。Google有些东西,但它不处理字符串。\uu set\u name\uu
现在是Python 3.6中的保留方法名。当您从Elixir迁移到Sqlalchemy时,我相信您可能已经混淆了我的问题。我想使用name,就好像它是一个class属性一样。有一个SQA的例子,但我希望它在长生不老药完成。我相信恰当的使用与ColumnProperty有关。然而,文档本身并不适用。Google有些东西,但它不处理字符串。\uuuuu set\u name\uuuu
现在是Python 3.6中的保留方法名
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, DateTime, String
from datetime import datetime
Base = declarative_base()
class User(Base):
first_name = Column('first_name', String)
middle_name = Column('middle_name', String)
last_name = Column('last_name', String)
def __get_name__ (self):
first_name = self.first_name if self.first_name is not None else ""
middle_name = self.middle_name if self.middle_name is not None else ""
last_name = self.last_name if self.last_name is not None else ""
return " ".join((first_name, middle_name, last_name)).strip()
def __set_name__ (self,string):
first_name = ""
middle_name = ""
last_name = ""
split_string = string.split(' ')
if len(split_string) == 1:
first_name = string
elif len(split_string) == 2:
first_name, last_name = split_string
elif len(split_string) == 3:
first_name, middle_name, last_name = split_string
else: #len(split_string) > 3:
first_name = split_string[0]
last_name = split_string[-1]
middle_name = " ".join(split_string[1:-2])
self.first_name = first_name
self.middle_name = middle_name
self.last_name = last_name
name = property(__get_name__,__set_name__)
In [13]: User.first_name
Out[13]: Column('first_name', String(), )
In [14]: User.name
Out[14]: <property object at 0x26fef70>
In [16]: u1 = User()
In [17]: u1.name = "first middle last"
In [18]: u1.name
Out[18]: 'first middle last'
In [19]: u1.first_name
Out[19]: 'first'